首頁 > web前端 > js教程 > 如何修改 FormData 物件中的檔案物件和 FileList 長度?

如何修改 FormData 物件中的檔案物件和 FileList 長度?

DDD
發布: 2024-12-01 01:50:09
原創
351 人瀏覽過

How Can I Modify File Objects and FileList Length within a FormData Object?

修改FormData 物件中的File 物件和FileList 長度

問題:

我們如何修改FormData 物件中的FileDataData 物件中的File物件FileList 並設定其長度,確保檔案反映在FormData 中物件?

答案:

使用DataTransfer

如原始發布者(OP) 所發現的,DataTransfer API 提供一種完成此任務的方法,儘管其當前存在局限性(僅由Blink 支持,FF >= 62)。透過 DataTransferItemList 建立可變 FileList,我們可以在 HTML 檔案輸入元素的 FileList 上設定任意檔案。


// 建立一個新的DataTransfer 物件
const dT = new DataTransfer();

//將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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板