Python 如何使用附加字段react.js上载多个文件
我试图使用react.js和python(flask)上传文件及其附加字段。用户可以上传多个文件。 为了添加更多功能,我将名称和文件放入一个数组中,该数组存储在组件的状态中,如下所示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
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类型。尝试更新的答案。此外,如果可能的话,你可以在你的问题中添加上传逻辑,这是这个问题的最佳答案…这对我来说很有用!这是这个问题的最佳答案…对我来说很有用!