Question :
Comment pouvons-nous modifier les objets fichier dans une FileList et définissez sa longueur, en vous assurant que les fichiers sont reflétés dans le FormData objet ?
Réponse :
Utilisation de DataTransfer
Comme l'a découvert l'affiche originale (OP), l'API DataTransfer propose une méthode pour accomplir cette tâche, malgré ses limitations actuelles (prise en charge uniquement par Blink, FF >= 62). En créant une FileList mutable via DataTransferItemList, nous pouvons définir des fichiers arbitraires sur la FileList d'un élément d'entrée de fichier HTML.
// Ajouter un objet File à DataTransferItemList
dT.items.add(new File(['foo'], 'programmatically_created.txt'));
// Définissez la propriété files de l'élément d'entrée sur Fichiers de l'objet DataTransfer
inp.files = dT.files;
<input type="file">
Cette approche modifie efficacement la FileList dans l'élément d'entrée du fichier, et les fichiers mis à jour seront reflétés dans le FormData. objet.
Limitations :
Il est important de noter que cette technique a actuellement une prise en charge limitée par les navigateurs. De plus, certains comportements de secours peuvent être requis pour les navigateurs qui ne prennent pas en charge le constructeur DataTransfer.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!