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
Linda HamiltonOriginal
2024-12-13 07:03:11882Durchsuche

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;
<input type="file">

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!

Stellungnahme:
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