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']