无法获得输入类型=“文件”的值?

时间:2011-05-05 19:51:06

标签: javascript jquery file input

我有<input type="file" id="uploadPicture" value="123">

当我使用时:alert($("#uploadPicture").val());

它会提醒空对话框。

8 个答案:

答案 0 :(得分:43)

您可以阅读,但不能设置value="123"将被忽略,因此在您点击它并选择文件之前它将没有值。

即使这样,该值也可能会被c:\fakepath\之类的内容破坏,以保护用户文件系统的详细信息。

答案 1 :(得分:8)

您可以使用document.getElementById();

来获取它
var fileVal=document.getElementById("some Id");
alert(fileVal.value);

将给出file的值,但它使用伪路径给出如下

c:\fakepath\filename

答案 2 :(得分:4)

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

那会让你选择文件。

但是,您无法自行设置该值。

答案 3 :(得分:4)

您无法在标记中设置value输入的file,就像使用value="123"一样。

此示例显示它确实有效: http://jsfiddle.net/marcosfromero/7bUba/

答案 4 :(得分:2)

这是一个古老的问题,但万一有人碰到这个问题......

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

不需要正则表达式,jQuery ....

答案 5 :(得分:0)

不要在文件输入值=“ 123”中给出该值。

  $(document).ready(function(){  

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

  });

答案 6 :(得分:0)

解决方案

document.getElementById("uploadPicture").attributes.value.textContent

答案 7 :(得分:0)

文件数组

let files = document.getElementById('your_input_id').files

第一个文件

let file = document.getElementById('your_input_id').files[0]

显示图片加载

const reader = new FileReader()

let files = document.getElementById('your_input_id').files
reader.onload = async (event) => {
    document.getElementById('preview').setAttribute('src', event.target.result)
}
reader.readAsDataURL(files[0])