Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

167
Visualizações
¿Mime/problema de codificación al cargar archivos?

Tengo un problema extraño que no puedo descifrar. Mi escenario es que capturo una imagen de la cámara y la muestro en la página web para que alguien la vea. Si les gusta, presionan cargar y lo pasa al backend para guardarlo.

Aquí está la pila - nodo en ambos lados:

  • Interfaz: Vue.js
 // Need to convert the dataURL in the canvas element to a File object for uploading function dataURLtoFile(dataUrl: string, fileName: string): File { var arr = dataUrl.split(","); var first_arr = arr[0] var match_arr = first_arr?.match(/:(.*?);/); var mime = 'image/png' if ((match_arr) && (match_arr?.length > 0)) { mime = match_arr[1]; } var bstr = atob(arr[1]); var n = bstr.length; var u8arr = new Uint8Array(n); while (n--) { u8arr[n] = bstr.charCodeAt(n); } return new File([u8arr], fileName, { type: mime }); } // Cut out some elements to make it cleaner function submitInfo() { let formData = new FormData(); const imageDataUrl = (document?.getElementById("canvas_image") as HTMLCanvasElement).toDataURL(); const objectPicture = dataURLtoFile(imageDataUrl, uuid()); formData.append('objectPicture', objectPicture); axios.post("/api/upload", formData); }
  • Back-end: Expreso
 app.post("/api/upload", async (req, res) => { let form = new formidable.IncomingForm(); var metadataFile = null; var objectPicture = null; await form.parse(req, function (err, fields, files) { // The name for our upload includes a prefix we can use to identify our files later const uploadName = [uuid() + "." + mime.extension(files.objectPicture.mimetype), ].join("|"); var objectPicture = new File( fs.readFileSync(files.objectPicture.filepath, 'utf8'), uploadName, { type: files.objectPicture.mimetype, } ); }); });

Así que no hay mucho allí, pero cuando miro el archivo, en comparación con el original, son solo dígitos (en comparación con lo que supongo que es la codificación adecuada). ¿En qué me equivoqué?


Editar: actualicé readFileSync con 'utf8' y sin cambios :( Además, miré el archivo temporal en el disco que se guardó formidablemente, y se ve bien. ¡Entonces hay algo en mi código que lo lee de nuevo que parece estar estropeándolo!

about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda