javascript/python/flask - formData 未将上传的文件发送到服务器
javascript/python/flask - formData not sending uploaded file to server
我正在尝试通过 axios
POST 请求将用户上传的文件发送到我的服务器 formData
但它不起作用。
什么不起作用:
const formData = new FormData();
formData.append('batch', batch);
formData.append('file', files[i]);
console.log(formData.get('batch')); // outputs 894489 correctly
console.log(formData.get('file')); // outputs fileObject correctly
axios.post('/api/upload', formData, {
headers: {
'Content-Type': 'multipart/form-data'
}
});
来自 python
的回复
print(request.form)
# ImmutableMultiDict([('batch', '894489')])
# Why is the file missing?
什么有效:
const formData = new FormData();
formData.append('batch', batch);
formData.append('file', 'test');
console.log(formData.get('batch')); // outputs 894489 correctly
console.log(formData.get('file')); // outputs 'test' correctly
axios.post('/api/upload', formData, {
headers: {
'Content-Type': 'multipart/form-data'
}
});
来自 python
的回复
print(request.form)
# ImmutableMultiDict([('batch', '894489'), ('file', 'test')])
# Why is the file appearing?
我的 files[i]
是一个有效的文件,正在被 JS 识别。这通过始终输出正确文件的 console.log(formData.get('file'));
得到确认。
文件在途中的某个地方丢失并且 python 不可用,但奇怪的是,如果我附加一个字符串,它就可以工作。有什么想法吗?
从 Flask 内部,应该可以使用以下方法访问文件:
request.files['file']
我正在尝试通过 axios
POST 请求将用户上传的文件发送到我的服务器 formData
但它不起作用。
什么不起作用:
const formData = new FormData();
formData.append('batch', batch);
formData.append('file', files[i]);
console.log(formData.get('batch')); // outputs 894489 correctly
console.log(formData.get('file')); // outputs fileObject correctly
axios.post('/api/upload', formData, {
headers: {
'Content-Type': 'multipart/form-data'
}
});
来自 python
的回复print(request.form)
# ImmutableMultiDict([('batch', '894489')])
# Why is the file missing?
什么有效:
const formData = new FormData();
formData.append('batch', batch);
formData.append('file', 'test');
console.log(formData.get('batch')); // outputs 894489 correctly
console.log(formData.get('file')); // outputs 'test' correctly
axios.post('/api/upload', formData, {
headers: {
'Content-Type': 'multipart/form-data'
}
});
来自 python
的回复print(request.form)
# ImmutableMultiDict([('batch', '894489'), ('file', 'test')])
# Why is the file appearing?
我的 files[i]
是一个有效的文件,正在被 JS 识别。这通过始终输出正确文件的 console.log(formData.get('file'));
得到确认。
文件在途中的某个地方丢失并且 python 不可用,但奇怪的是,如果我附加一个字符串,它就可以工作。有什么想法吗?
从 Flask 内部,应该可以使用以下方法访问文件:
request.files['file']