我有一个
当我使用
它会弹出一个空对话框。
<input type="file" id="uploadPicture" value="123">
。当我使用
alert($("#uploadPicture").val());
时,它会弹出一个空对话框。
<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:\fakepath\filename
$('input[type=file]').val()
这将获取您选择的文件。
然而,您无法自行设置值。
您不能像使用value="123"
一样在标记中设置file
输入的value
。
以下示例说明它确实起作用: 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等技术...
不要将这个值作为文件输入 value="123"。
$(document).ready(function(){
var img = $('#uploadPicture').val();
});