wake-up-neo.net

Wert des Eingabetyps = "Datei" kann nicht abgerufen werden?

Ich habe ein <input type="file" id="uploadPicture" value="123">

Wenn ich benutze: alert($("#uploadPicture").val());

Es gibt einen leeren Dialog aus.

45
Danpe

Sie können es lesen, aber Sie können es nicht setzen. value="123" wird ignoriert, es wird also erst dann ein Wert angezeigt, wenn Sie darauf klicken und eine Datei auswählen.

Selbst dann wird der Wert wahrscheinlich mit etwas wie c:\fakepath\ entstellt, um die Details des Dateisystems des Benutzers geheim zu halten.

41
Quentin

@BozidarS: FileAPI wird heutzutage recht gut unterstützt und bietet eine Reihe nützlicher Optionen.

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

Sie können es erhalten, indem Sie document.getElementById () verwenden.

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

gibt den Wert von file aus, aber mit fakepath wie folgt

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

Dadurch wird die Datei ausgewählt. 

Sie können den Wert jedoch nicht selbst einstellen.

4
Jack Marchetti

Sie können die Variable value einer file-Eingabe nicht wie in value="123" im Markup festlegen.

Dieses Beispiel zeigt, dass es wirklich funktioniert: http://jsfiddle.net/marcosfromero/7bUba/

4
marcosfromero

Es ist eine alte Frage, aber nur für den Fall, dass jemand auf dieses Profil stößt ... 

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

Keine Notwendigkeit für Regex, jQuery ....

2

geben Sie dies nicht in der Eingabedatei der Datei = "123" an.

$ (Dokument) .ready (Funktion () { 

  var img = $('#uploadPicture').val();

});

0
Md Shahriar