如何将文件从 Nodejs 发送到 Flask Python?
How to send file from Nodejs to Flask Python?
希望你一切顺利。
我正在尝试使用 Axios 将 pdfs 文件从 Nodejs 发送到 Flask。
我从一个目录中读取文件(以缓冲区数组的形式)并将它们添加到 formData(一个 npm 包)中并发送一个 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")}
烧瓶一侧:
我正在尝试从请求中获取数据。
print(request.files)
if (request.method == "POST"):
file=request.form["file"]
if file:
print(file)
在 request.file 中,我得到 ImmutableMultiDict([])
但是在 request.form["file"] 中,我得到的数据是这样的:
如何处理这种类型的文件格式或如何将这种文件格式转换为 python fileObject。
我通过更新 Nodejs 代码解决了这个问题。
我们需要将 formData 文件转换成 octet/stream 格式。
所以我对 formData 代码做了一些小改动:
之前:formData.append("file", existingFile)
之后:formData.append("file", fs.createReadStream(existingFile)
Note: fs.createReadStream only accepts string or uint8array
without null bytes. we cannot pass the buffer array.
希望你一切顺利。 我正在尝试使用 Axios 将 pdfs 文件从 Nodejs 发送到 Flask。 我从一个目录中读取文件(以缓冲区数组的形式)并将它们添加到 formData(一个 npm 包)中并发送一个 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")}
烧瓶一侧:
我正在尝试从请求中获取数据。
print(request.files)
if (request.method == "POST"):
file=request.form["file"]
if file:
print(file)
在 request.file 中,我得到 ImmutableMultiDict([])
但是在 request.form["file"] 中,我得到的数据是这样的:
如何处理这种类型的文件格式或如何将这种文件格式转换为 python fileObject。
我通过更新 Nodejs 代码解决了这个问题。 我们需要将 formData 文件转换成 octet/stream 格式。
所以我对 formData 代码做了一些小改动:
之前:formData.append("file", existingFile)
之后:formData.append("file", fs.createReadStream(existingFile)
Note: fs.createReadStream only accepts string or uint8array without null bytes. we cannot pass the buffer array.