[英]How to send file metadata over api using fetch
在我正在开发的网络应用程序中,用户可以上传文件。 作为上传过程的一部分,用户必须指定文件的类型(例如发票、收据、合同)以及客户是谁。
然后我使用 fetch 将文件发送到后端服务器。 从后端服务器上传到 ftp。 在 ftp 上,我需要根据文件类型 ID 和客户 ID 创建一个目录。 例如,它应该在目录 ftp/invoices/kfc 中。
然后,在数据库上,服务器注册文件、它的位置,例如,它的上传日期。
理想情况下,我想将元数据(文件类型、客户)作为同一提取的一部分发送。
我的后端服务器正在使用 python 和 flask。
我的前端代码如下。 我已经尝试了几件事:
我希望有人能告诉我有一个简单的方法可以做到这一点。
前端是 React-redux,后端是 python 和 flask,数据库在 Z62A004B95946BB97541AFA47
case 'SEND_FILE_TO_SERVER':
const formData = new FormData();
formData.append('File', action.fileToSend);
fetch(window.location.origin + '/api/submit-file', {
method: 'POST',
body: formData,
})
经过一番排查,我发现正确的做法确实是将metaData添加到formData中。 起初它不起作用的原因是因为我试图在 python flask 中错误地访问它。 所以,在 javascript 你应该有
formData.append('File', action.fileToSend);
formData.append('metaData', JSON.stringify(action.metaData));
然后在 python flask 你应该有
@app.route('/api/submit-file', methods=["POST"])
def submit_file():
file = request.files['File']
metaData = loads(request.form['metaData'])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.