簡體   English   中英

使用 FormData 上傳單個文件

[英]Single file upload with FormData

我想用這個代碼上傳一個文件:

let formData = new FormData();
let file = this.file[0];
formData.append("file", file);

通常我使用這段代碼,因為當我上傳多個文件時:

 let formData = new FormData();
  for (let i = 0; i < data.files.length; i++) {
    let file = data.files[i];
    consol
    formData.append("files[" + i + "]", file);
  }

但是在上傳單個文件后, formData變量在我 append 文件之后保持為空。 當我console.log file變量時,它向我顯示:

File {name: "2020_03_17 21_53 Office Lens (1).jpg", lastModified: 1587394084978, lastModifiedDate: Mon Apr 20 2020 16:48:04 GMT+0200 (Central European Summer Time), webkitRelativePath: "", size: 306890, …}
lastModified: 1587394084978
lastModifiedDate: Mon Apr 20 2020 16:48:04 GMT+0200 (Central European Summer Time) {}
name: "2020_03_17 21_53 Office Lens (1).jpg"
size: 306890
type: "image/jpeg"
webkitRelativePath: ""

為什么這個文件沒有附加到 FormData?

文件的內容(以字節的形式)永遠不會顯示在 console.log 中。
如果您能夠看到file.size ,則表示該文件存在於 formdata object 中。

要對此進行測試 - 嘗試將此表單數據發送到 API 並使用 httpRequest.FormData[0] 接收它 - 您會發現您的文件已發送到 api

參考 - https://developer.mozilla.org/en-US/docs/Web/API/FormData/Using_FormData_Objects

我猜在代碼中你需要“文件”而不是“文件”。 您還可以通過“this”檢查您實際指的是什么

let formData = new FormData();
let file = this.files[0];
formData.append("file", file);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM