J'ai un <input type="file" id="uploadPicture" value="123">
Quand j'utilise: alert($("#uploadPicture").val());
Il alerte un dialogue vide.
Vous pouvez le lire, mais vous ne pouvez pas régler . value="123"
sera ignoré, il n'aura donc de valeur que si vous cliquez dessus et choisissez un fichier.
Même dans ce cas, la valeur sera probablement modifiée avec quelque chose comme c:\fakepath\
pour garder les détails du système de fichiers de l'utilisateur privés.
@BozidarS: FileAPI est assez bien supporté de nos jours et fournit plusieurs 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 donne fakepath comme suit
c:\fakepath\filename
$('input[type=file]').val()
Cela vous donnera le fichier sélectionné.
Cependant, vous ne pouvez pas définir la valeur vous-même.
Vous ne pouvez pas définir la value
d'une entrée file
dans le balisage, comme vous l'avez fait avec value="123"
.
Cet exemple montre que cela fonctionne vraiment: http://jsfiddle.net/marcosfromero/7bUba/
C'est une vieille question mais juste au cas où quelqu'un cognerait 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 ....
ne donnez pas cette valeur d'entrée dans le fichier = "123".
$ (document) .ready (fonction () {
var img = $('#uploadPicture').val();
});