Подтвердить что ты не робот

Не удается получить значение input type="file"?

У меня есть <input type="file" id="uploadPicture" value="123">

Когда я использую: alert($("#uploadPicture").val());

Он выводит пустой диалог.

4b9b3361

Ответ 1

Вы можете прочитать его, но вы не можете установить его. value="123" будет проигнорирован, поэтому он не будет иметь значение, пока вы не нажмете на него и не выберите файл.

Даже тогда значение, скорее всего, будет искажено чем-то вроде c:\fakepath\, чтобы сохранить личные данные пользовательской файловой системы.

Ответ 2

@BozidarS: FileAPI поддерживается в настоящее время и предоставляет ряд полезных параметров.

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

Ответ 3

Вы можете получить его с помощью document.getElementById();

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

даст значение файла, но оно дает с fakepath следующим образом

c:\fakepath\filename

Ответ 4

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

Это даст вам выбранный файл.

Однако вы не можете установить значение самостоятельно.

Ответ 5

Вы не можете установить value для ввода file в разметке, например, с value="123".

Этот пример показывает, что он действительно работает: http://jsfiddle.net/marcosfromero/7bUba/

Ответ 6

Это старый вопрос, но на всякий случай кто-то ударился об этом протекте...

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

Нет необходимости в регулярном выражении, jQuery....

Ответ 7

не указывайте это в файле входного значения = "123".

  $(document).ready(function(){  

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

  });

Ответ 8

Удалить value = "123" вещь будет великолепно выглядеть. Затем попробуйте:

$("file_selector").val();

Еще одна проблема. Вы получите один файл c:\fakepath\yourfile.extension.