Maison > interface Web > js tutoriel > Comment puis-je modifier les objets fichier et la longueur de la liste de fichiers dans un objet FormData ?

Comment puis-je modifier les objets fichier et la longueur de la liste de fichiers dans un objet FormData ?

DDD
Libérer: 2024-12-01 01:50:09
original
280 Les gens l'ont consulté

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

Modification des objets fichier et de la longueur de la liste de fichiers dans un objet FormData

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.


< ;pre>// Créer un nouvel objet DataTransfer
const dT = new DataTransfer();

// 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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal