首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用附加字段react.js flask上传多个文件

如何使用附加字段react.js flask上传多个文件
EN

Stack Overflow用户
提问于 2019-10-01 02:03:01
回答 2查看 1.4K关注 0票数 1

我正在尝试上传文件以及它的附加字段使用react.js和python(flask)。用户可以上传多个文件。

为了添加更多功能,我在一个数组中推送了Name和File,该数组存储在组件的状态中,如下所示。

代码语言:javascript
运行
复制
this.state = {
   files:[{name:'', file:''}]
}

我在flask中创建了一个rest api来上传文件和保存数据。并以formData()的形式传递this.state数据。我正在尝试在flask中获取上传的文件,如下所示。

代码语言:javascript
运行
复制
let formData = this.state; 
    const fd = new FormData(); 
    for(let k in formData){
        fd.append(k,formData[k]);
    };

Rest API-

代码语言:javascript
运行
复制
@mod_upload.route('/upload',methods=['POST'])
def upload():
        if request.method == 'POST': 
                f = request.files['files']
                print(f) 

一切正常,但在上面的代码中,f总是为空的,因为在formData()中,我附加的是this.state.files,这是一个数组,但它需要的是文件对象。

所以,我需要一些建议,如何在request.files['files']中访问文件和字段值。

请帮帮我。谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-01 02:52:19

尝尝这个。在追加表单数据时,请注意'files'键。如果有效,请让我知道

更新的ANS

代码语言:javascript
运行
复制
let formData = this.state; 
    const fd = new FormData(); 
    for(const k of formData){
        fd.append('files',k.file, k.name);
    };
票数 3
EN

Stack Overflow用户

发布于 2019-10-01 15:09:49

您没有发送文件值,因此requests.files['files']将为空。

代码语言:javascript
运行
复制
fd.append("file", files[0]); // replace files[0] with your file
fd.append("name", "tmp");

现在,您将看到requests.files['file']中填充了您的文件,而request.form中填充了“name”键及其值。

注意,它不是填充requests.files的键名,它是根据它的值填充的(它应该是文件对象)

您可以为file1元数据创建类似于name1的结构,为file2元数据创建类似于name2的结构。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58173019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档