Не можете получить значение ввода type = "file"? - PullRequest
52 голосов
/ 05 мая 2011

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

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

Это предупреждает пустой диалог.

Ответы [ 7 ]

53 голосов
/ 13 сентября 2015

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

var file = document.forms['formName']['inputName'].files[0];
//file.name == "photo.png"
//file.type == "image/png"
//file.size == 300821
43 голосов
/ 05 мая 2011

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

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

8 голосов
/ 13 июля 2012

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

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

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

c:\fakepath\filename
5 голосов
/ 05 мая 2011
$('input[type=file]').val()

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

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

4 голосов
/ 06 мая 2011

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

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

2 голосов
/ 09 сентября 2015

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

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

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

0 голосов
/ 18 октября 2018

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

  $(document).ready(function(){  

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

  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...