Espero que estés bien. Estoy tratando de enviar un archivo pdf desde Nodejs a Flask usando Axios. Leo archivos de un directorio (en forma de matriz de búfer) y los agrego a formData (un paquete npm) y envío una solicitud de Axios.
const existingFile = fs.readFileSync(path) console.log(existingFile) const formData = new nodeFormData() formData.append("file", existingFile) formData.append("fileName", documentData.docuName) try { const getFile = await axios.post("http://127.0.0.1:5000/pdf-slicer", formData, { headers: { ...formData.getHeaders() } }) console.log(getFile)} catch (e) {console.log(e, "getFileError")}
En el lado del matraz:
Estoy tratando de obtener datos de la solicitud.
print(request.files) if (request.method == "POST"): file=request.form["file"] if file: print(file)
en request.file , obtengo ImmutableMultiDict([])
pero en request.form["file"] , obtengo datos como estos:
¿Cómo puedo manejar este tipo de formato de archivo o cómo puedo convertir este formato de archivo a python fileObject?
Resolví este problema actualizando mi código Nodejs . Necesitamos convertir el archivo formData en formato de octeto/flujo .
así que hice un cambio menor en mi código formData:
antes: formData.append("file", existingFile)
después: formData.append("file", fs.createReadStream(existingFile)
Nota: fs.createReadStream solo acepta cadenas o uint8array sin bytes nulos. no podemos pasar la matriz de búfer.