jQuery: récupère le nom du fichier sélectionné dans

Ce code devrait fonctionner dans IE (ne le testez même pas dans Firefox), mais ce n’est pas le cas. Ce que je veux, c’est afficher le nom du fichier joint. De l’aide?

  example   $(document).ready( function(){ $("#attach").after(""); $("#fakeAttach").click(function() { $("#attach").click(); $("#maxSize").after("
"); $('#attach').change(function(){ $("#fakeAttach").attr("disabled","disabled"); $("#attachedFile").html($(this).val()); }); $("#remove").click(function(e){ e.preventDefault(); $("#attach").replaceWith($("#attach").clone()); $("#fakeAttach").attr("disabled",""); $("#temporary").remove(); }); }) }); (less than 1MB)

C’est aussi simple que d’écrire:

 $('input[type=file]').val() 

Quoi qu’il en soit, je suggère d’utiliser l’atsortingbut name ou ID pour sélectionner votre entrée. Et avec event, cela devrait ressembler à ceci:

 $('input[type=file]').change(function(e){ $in=$(this); $in.next().html($in.val()); }); 
 $('input[type=file]').change(function(e){ $(this).parents('.parent-selector').find('.element-to-paste-filename').text(e.target.files[0].name); }); 

Ce code n’affichera pas C:\fakepath\ avant le nom du fichier dans Google Chrome en cas d’utilisation de .val() .

La manière la plus simple est d’utiliser simplement la ligne suivante de jquery , en utilisant ceci vous n’obtenez pas le non-sens /fakepath , vous obtenez directement le fichier qui a été téléchargé:

 $('input[type=file]')[0].files[0]; // This gets the file $('#idOfFileUpload')[0].files[0]; // This gets the file with the specified id 

Quelques autres commandes utiles sont:

Pour obtenir le nom du fichier:

 $('input[type=file]')[0].files[0].name; // This gets the file name 

Pour obtenir le type du fichier:

Si je devais télécharger un PNG, cela retournerait image/png

 $("#imgUpload")[0].files[0].type 

Pour obtenir la taille (en octets) du fichier:

 $("#imgUpload")[0].files[0].size 

De plus, vous n’avez pas besoin d’utiliser ces commandes on('change' , vous pouvez obtenir les valeurs à tout moment, par exemple vous pouvez avoir un téléchargement de fichier et lorsque l’utilisateur clique sur le upload , vous utilisez simplement les commandes répertoriées.

J’avais utilisé les suivantes qui fonctionnaient correctement.

 $('#fileAttached').attr('value', $('#attachment').val()) 
    
 //get file input var $el = $('input[type=file]'); //set the next siblings (the span) text to the input value $el.next().text( $el.val() ); 

Ajouter un bouton de réinitialisation caché:

  

Cliquez sur le bouton de réinitialisation pour effacer l’entrée.

 $("#Reset1").click();