繁体   English   中英

如何将文件从 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"] 中,我得到的数据是这样的:

request.form["file"] 打印示例

我如何处理这种类型的文件格式,或者如何将这种文件格式转换为 python fileObject。

我通过更新我的Nodejs代码解决了这个问题。 我们需要将 formData 文件转换为八位字节/流格式。

所以我对我的 formData 代码做了一些小的改动:

之前: formData.append("file", existingFile)

之后: formData.append("file", fs.createReadStream(existingFile)

注意: fs.createReadStream只接受没有空字节的字符串或 uint8array。 我们不能传递缓冲区数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM