所以我正在寻找一种在上传图像之前预览图像的方法,我发现了这种方法:
<script type="text/javascript">
function readURL(input) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
$('#blah').attr('src', e.target.result);
}
reader.readAsDataURL(input.files[0]);
}
}
</script>
<body>
<form id="form1" runat="server">
<input type='file' onchange="readURL(this);" />
<img id="blah" src="#" alt="your image" />
</form>
</body>
效果很好,但有一些我不明白的地方。
if(input.files && input.files[0]) 到底做什么?
我知道 input.files 返回一个 FileList 对象,该对象允许您访问使用 <input type='file'>
选择的文件列表。元素并且 input.files[0] 返回节点文件列表中的第一个文件,但我似乎无法理解该行代码正在检查的内容...
谢谢!
最佳答案
if(input.files && input.files[0])
使用 AND 检查输入对象是否包含名为 files 的元素,并检查 files 对象是否是一个至少包含一个元素的数组
关于javascript - 上传前预览图像 - 这行代码检查什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24615367/