>我有一个<input type="file" id="uploadPicture" value="123">
当我使用时:alert($("#uploadPicture").val());
它会提醒一个空对话框。
>@BozidarS:FileAPI现在得到了很好的支持,并提供了许多有用的选项。
var file = document.forms['formName']['inputName'].files[0];
//file.name == "photo.png"
//file.type == "image/png"
//file.size == 300821
您可以阅读它,但无法设置它。 value="123"
将被忽略,因此在您单击它并选择一个文件之前,它不会有值。
即便如此,该值也可能会被诸如c:fakepath
之类的东西破坏,以保持用户文件系统的详细信息的私密性。
您可以使用 document.getElementById() 获取它;
var fileVal=document.getElementById("some Id");
alert(fileVal.value);
将给出文件的值,但它给出的假路径如下
c:fakepathfilename
$('input[type=file]').val()
这将使您获得选定的文件。
但是,您无法自行设置该值。
您不能在标记中设置file
输入的value
,就像对value="123"
所做的那样。
这个例子表明它确实有效:http://jsfiddle.net/marcosfromero/7bUba/
文件数组
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])
这是一个老问题,但以防万一有人撞到这个胎面......
var input = document.getElementById("your_input");
var file = input.value.split("\");
var fileName = file[file.length-1];
不需要正则表达式,jQuery....