Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Menetapkan Senarai Fail dan Sifat Fail Dengan Betul Apabila Menggunakan FormData?

Bagaimana untuk Menetapkan Senarai Fail dan Sifat Fail Dengan Betul Apabila Menggunakan FormData?

Patricia Arquette
Patricia Arquetteasal
2024-12-08 06:19:10423semak imbas

How to Correctly Set FileList and File Properties When Using FormData?

Bagaimana untuk menetapkan objek Fail dan sifat panjang pada objek FileList di mana fail juga ditunjukkan pada objek FormData?

Seperti yang diterangkan dalam gesaan, adalah mungkin untuk menetapkan .files sifat elemen ke Senarai Fail daripada sifat .files elemen atau sifat DataTransfer.files.

Walau bagaimanapun, objek FileList mempunyai sifat .length yang kekal pada 0 walaupun selepas menetapkannya melalui sifat .files. Selain itu, lulus mengandungi dengan .fail yang diubah suai menggunakan pendekatan ini akan menghasilkan objek Fail dengan saiz .0.

Untuk menangani isu ini, anda perlu terlebih dahulu memastikan bahawa FileList boleh berubah. Ini boleh dicapai dengan menggunakan pembina DataTransfer, mencipta FileList boleh ubah yang boleh diakses melalui DataTransferItemList.

Setelah FileList boleh berubah, fail boleh ditetapkan secara individu menggunakan kaedah DataTransferItemList.add(). Ini juga akan memastikan bahawa sifat FileList.length ditetapkan kepada bilangan fail yang betul.

Dengan mengikuti prosedur ini, fail juga akan ditunjukkan dalam objek FormData yang dicipta daripada borang.

Berikut ialah contoh:

const dT = new DataTransfer();
dT.items.add(new File(['foo'], 'programmatically_created.txt'));
document.querySelector('input[type="file"]').files = dT.files;

Dengan pendekatan ini, Senarai Fail bagi elemen akan diisi dengan fail yang dibuat dalam objek DataTransfer. Sifat FileList.length akan ditetapkan kepada 1 dan fail akan ditunjukkan dalam objek FormData yang dibina daripada borang.

Atas ialah kandungan terperinci Bagaimana untuk Menetapkan Senarai Fail dan Sifat Fail Dengan Betul Apabila Menggunakan FormData?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn