Heim > Web-Frontend > js-Tutorial > Wie kann ich Dateiobjekte und die Dateilistenlänge in FormData ändern?

Wie kann ich Dateiobjekte und die Dateilistenlänge in FormData ändern?

Linda Hamilton
Freigeben: 2024-12-13 07:03:11
Original
879 Leute haben es durchsucht

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

Bearbeiten von Dateiobjekten und FileList-Eigenschaften in FormData

Frage:

Wie können wir Dateiobjekte bearbeiten und die Längeneigenschaft der FileList innerhalb eines anpassen? FormData-Objekt?

Hintergrund:

FileList-Objekte haben normalerweise ein Symbol.iterator-Eigenschaft, die es uns ermöglicht, iterierbare Objekte als Dateitypen festzulegen. Die .length-Eigenschaft der Datei bleibt jedoch auf 0.

Lösung:

Ein kürzlicher Durchbruch ist zu verzeichnen, wie das OP im Wesentlichen zeigt. Mithilfe des DataTransfer-Konstruktors können wir eine veränderbare FileList erstellen, auf die über DataTransferItemList zugegriffen werden kann.

Details:

In Blink-Browsern und Firefox-Versionen 62 und höher kann der DataTransfer-Konstruktor eine veränderbare FileList erstellen. Vor Firefox 62 bot ein Fehler in der Implementierung von ClipboardEvent eine Problemumgehung.

Code-Implementierung:

Hier ist ein Beispiel, wie dies erreicht werden kann:

const dT = new DataTransfer();
dT.items.add(new File(['foo'], 'programmatically_created.txt'));
inp.files = dT.files;
Nach dem Login kopieren
<input type="file">
Nach dem Login kopieren

Dieser Ansatz ändert effektiv die Dateiobjekte und legt die Längeneigenschaft der FileList korrekt fest, sodass sie in den FormData widergespiegelt werden können Objekt.

Das obige ist der detaillierte Inhalt vonWie kann ich Dateiobjekte und die Dateilistenlänge in FormData ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage