Impossible d'obtenir la valeur du type de saisie = "fichier"?

J'ai un <input type="file" id="uploadPicture" value="123">

Lorsque j'utilise: alert($("#uploadPicture").val());

Il avertit une boîte de dialogue vide.

Vous pouvez le lire, mais vous ne pouvez pas le définir . value="123" sera ignoré, donc il n'aura de valeur que lorsque vous cliquez dessus et choisissez un fichier.

Même alors, la valeur sera vraisemblablement mangled avec quelque chose comme c:\fakepath\ pour garder les détails du système de fichiers de l'utilisateur privé.

@BozidarS: FileAPI est assez bien pris en charge aujourd'hui et fournit un certain nombre d'options utiles.

 var file = document.forms['formName']['inputName'].files[0]; //file.name == "photo.png" //file.type == "image/png" //file.size == 300821 

Vous pouvez l'obtenir en utilisant document.getElementById ();

 var fileVal=document.getElementById("some Id"); alert(fileVal.value); 

Donnera la valeur du fichier, mais il donne avec fausse-chemin comme suit

 c:\fakepath\filename 
 $('input[type=file]').val() 

Cela vous permettra de sélectionner le fichier.

Toutefois, vous ne pouvez pas définir la valeur vous-même.

Vous ne pouvez pas définir la value d'une entrée de file dans le balisage, comme vous l'avez fait avec value="123" .

Cet exemple montre qu'il fonctionne vraiment: http://jsfiddle.net/marcosfromero/7bUba/

C'est une vieille question mais juste au cas où quelqu'un se précipitait sur cette bande de roulement …

 var input = document.getElementById("your_input"); var file = input.value.split("\\"); var fileName = file[file.length-1]; 

Pas besoin de regex, jQuery ….

Supprimer la valeur = "123" chose sera génial. Alors essaye:

 $("file_selector").val(); 

Encore un problème. Vous obtiendrez un c: \ fakepath \ yourfile.extension.