問題:
我們如何修改FormData 物件中的FileDataData 物件中的File物件FileList 並設定其長度,確保檔案反映在FormData 中物件?
答案:
使用DataTransfer
如原始發布者(OP) 所發現的,DataTransfer API 提供一種完成此任務的方法,儘管其當前存在局限性(僅由Blink 支持,FF >= 62)。透過 DataTransferItemList 建立可變 FileList,我們可以在 HTML 檔案輸入元素的 FileList 上設定任意檔案。
//將File 物件加入DataTransferItemList
dT.items.add(new File(['foo'], 'programmatically_created.txt'));
// 將輸入元素的files 屬性設定為DataTransfer 物件的檔案
inp.files = dT.files;
<input type="file">
這種方法有效地修改了檔案輸入元素內的FileList,並且更新的檔案將反映在FormData中
限制:
需要注意的是,該技術目前的瀏覽器支援有限。此外,不支援 DataTransfer 建構函式的瀏覽器可能需要一些後備行為。
以上是如何修改 FormData 物件中的檔案物件和 FileList 長度?的詳細內容。更多資訊請關注PHP中文網其他相關文章!