Frage:
Wie können wir die Dateiobjekte darin ändern? eine FileList und legen Sie deren Länge fest, um sicherzustellen, dass die Dateien in den FormData widergespiegelt werden Objekt?
Antwort:
DataTransfer verwenden
Wie im Originalposter (OP) festgestellt, bietet die DataTransfer-API Folgendes eine Methode, um diese Aufgabe trotz ihrer aktuellen Einschränkungen zu erfüllen (wird nur von Blink, FF >= 62 unterstützt). Durch die Erstellung einer veränderlichen FileList über die DataTransferItemList können wir beliebige Dateien auf der FileList eines HTML-Dateieingabeelements festlegen.
// Hinzufügen ein File-Objekt zur DataTransferItemList
dT.items.add(new File(['foo'], 'programmatical_created.txt'));
// Setze die Dateieigenschaft des Eingabeelements auf die Dateien des DataTransfer-Objekts
inp.files = dT.files;
<input type="file">
Dieser Ansatz ändert effektiv die FileList innerhalb des Dateieingabeelements und die aktualisierten Dateien werden in den FormData widergespiegelt Objekt.
Einschränkungen:
Es ist wichtig zu beachten, dass diese Technik derzeit nur begrenzte Browserunterstützung bietet. Darüber hinaus ist möglicherweise ein gewisses Fallback-Verhalten für Browser erforderlich, die den DataTransfer-Konstruktor nicht unterstützen.
Das obige ist der detaillierte Inhalt vonWie kann ich Dateiobjekte und die Dateilistenlänge innerhalb eines FormData-Objekts ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!