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.