Flask服务器无法读取POST请求上载的文件

2024-09-28 19:02:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我让React客户机将一个带有fetch api的文件发布到'/dataset'端点。在

import 'whatwg-fetch';

uploadData(csv) {
    this.dataset = csv;

    fetch('/dataset', {
        method: 'POST',
        body: this._fileToFormData(csv)
    }).then(
        (response) => {
            console.log(response);
        }
    ).catch( () => {} );
};

_fileToFormData(file) {
        var formData = new FormData();
        formData.append('file', file);
        return formData
    };

我的烧瓶服务生应该会把它捡起来的。在

^{pr2}$

但是,csv_data对象只是一个unicode字符串,'[object File]'

代码

print "form:", request.form
print "files:", request.files

退货

ImmutableMultiDict([('file', u'[object File]')])
ImmutableMultiDict([])

如何获取CSV文件的实际内容?在

===编辑:已解决===

变量csv实际上是一个单独的文件数组,所以我需要将文件提取出来。在


Tags: 文件csvformobjectresponserequestfilesfetch
1条回答
网友
1楼 · 发布于 2024-09-28 19:02:13

上载的文件在request.files中可用,而不是request.form。这些值是类似文件的对象,因此要获取需要读取文件的数据。在

data = request.files['file'].read()

请参阅Flaskdocs中有关处理上载的一些示例。在


你还需要正确上传文件。GitHub的fetch polyfill有一个使用FormData正确格式化正文的示例。每次调用append时必须传递一个文件或输入。在

^{pr2}$

相关问题 更多 >