[英]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.