[javascript] Comment supprimer un fichier sélectionné spécifique du contrôle de fichier d'entrée


0 Answers

Je pensais que je devrais ajouter mon commentaire ici aussi bien (j'ai répondu ici: JavaScript supprimer le fichier de FileList à télécharger )

J'ai trouvé une solution de contournement. Cela ne nécessitera pas du tout AJAX pour la requête et le formulaire peut être envoyé au serveur. Fondamentalement, vous pouvez créer une entrée hidden ou text et définir son attribut value à la chaîne base64 créée après le traitement du fichier sélectionné.

<input type=hidden value=${base64string} />

Vous allez probablement envisager l'idée de créer plusieurs fichiers d'entrée au lieu de text entrée ou hidden . Cela ne fonctionnera pas car nous ne pouvons pas lui attribuer de valeur.

Cette méthode inclura le fichier d'entrée dans les données envoyées à la base de données et ignorera le fichier d'entrée que vous pourriez:

  • dans le back-end ne considèrent pas le champ;
  • vous pouvez définir l'attribut disabled sur le fichier d'entrée avant de sérialiser le formulaire;
  • supprimez l'élément DOM avant d'envoyer des données.

Lorsque vous voulez supprimer un fichier, récupérez simplement l'index de l'élément et supprimez l'élément d'entrée (texte ou caché) du DOM.

Exigences:

  • Vous devez écrire la logique pour convertir les fichiers en base64 et stocker tous les fichiers dans un tableau chaque fois que le fichier d'entrée déclenche l'événement change .

Avantages:

  • Cela vous donnera essentiellement beaucoup de contrôle et vous pourrez filtrer, comparer les fichiers, vérifier la taille du fichier, le type MIME, etc.
Question

Comment supprimer un fichier sélectionné spécifique du contrôle de fichier d'entrée?

J'ai un contrôle de fichier d'entrée avec l'option de sélectionner plusieurs fichiers; cependant, je veux valider un dossier et s'il a une extension incorrecte alors je devrais enlever ce dossier du contrôle de dossier lui-même, est-ce possible?

J'ai essayé comme ci-dessous

<input type="file" name="fileToUpload" id="fileToUpload" multiple/>


<script> $("#fileToUpload")[0].files[0] </script>

Voici la capture d'écran de l'objet mais je ne suis pas en mesure de le modifier






Related