Python 如何使用附加字段react.js上载多个文件

Python 如何使用附加字段react.js上载多个文件,python,reactjs,flask,multipartform-data,form-data,Python,Reactjs,Flask,Multipartform Data,Form Data,我试图使用react.js和python(flask)上传文件及其附加字段。用户可以上传多个文件。 为了添加更多功能,我将名称和文件放入一个数组中,该数组存储在组件的状态中,如下所示 this.state = { files:[{name:'', file:''}] } 我在flask中创建了一个RESTAPI来上传文件和保存数据。并将此.state数据传递为formData()。我正试图在烧瓶中上传文件,如下所示 let formData = this.state; con

我试图使用react.js和python(flask)上传文件及其附加字段。用户可以上传多个文件。

为了添加更多功能,我将名称和文件放入一个数组中,该数组存储在组件的状态中,如下所示

this.state = {
   files:[{name:'', file:''}]
}
我在flask中创建了一个RESTAPI来上传文件和保存数据。并将
此.state
数据传递为
formData()
。我正试图在烧瓶中上传文件,如下所示

let formData = this.state; 
    const fd = new FormData(); 
    for(let k in formData){
        fd.append(k,formData[k]);
    };
RESTAPI-

@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']
中的文件和字段值

请帮帮我。
谢谢,试试这个。在附加表单数据时,请注意
'files'
键。让我知道它是否有效

更新的ANS

let formData = this.state; 
    const fd = new FormData(); 
    for(const k of formData){
        fd.append('files',k.file, k.name);
    };

试试这个。在附加表单数据时,请注意
'files'
键。让我知道它是否有效

更新的ANS

let formData = this.state; 
    const fd = new FormData(); 
    for(const k of formData){
        fd.append('files',k.file, k.name);
    };

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

fd.append("file", files[0]); // replace files[0] with your file
fd.append("name", "tmp");
现在您将看到
requests.files['file']
中填充了您的文件, 和
请求。表单
由'name'键及其值填充

请注意,填充
requests.files
的不是键名,而是基于其值填充的(应该是文件对象)


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

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

fd.append("file", files[0]); // replace files[0] with your file
fd.append("name", "tmp");
现在您将看到
requests.files['file']
中填充了您的文件, 和
请求。表单
由'name'键及其值填充

请注意,填充
requests.files
的不是键名,而是基于其值填充的(应该是文件对象)


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

添加上载请求代码。您是否在http请求中发送正确的头文件<代码>{headers:{'Content-Type':'multipart/form data'}}是,在headers中,内容类型是multipart/form dataOk。
request.form
对象中有什么?
request.form
是一个
ImmutableMultiDict
,它包含所有表单数据以及
文件:[{name:'',file:'}]
。也可以添加上传请求代码。您是否在http请求中发送正确的头文件<代码>{headers:{'Content-Type':'multipart/form data'}}是,在headers中,内容类型是multipart/form dataOk。
request.form
对象中有什么?
request.form
是一个
ImmutableMultiDict
,它包含所有表单数据以及
文件:[{name:'',file:'}]
也。它的抛出错误
未能对“FormData”执行“append”:参数2不是“Blob”类型。
。我想它期望file为
blob
,但我将file作为
对象
,因为我们提供的第二个参数是整数。我们需要提供blob类型。尝试更新的答案。如果可能,您还可以在问题中添加上载逻辑。它的抛出错误
未能对“FormData”执行“append”:参数2不是“Blob”类型。
。我想它期望file为
blob
,但我将file作为
对象
,因为我们提供的第二个参数是整数。我们需要提供blob类型。尝试更新的答案。此外,如果可能的话,你可以在你的问题中添加上传逻辑,这是这个问题的最佳答案…这对我来说很有用!这是这个问题的最佳答案…对我来说很有用!