我试过这个例子,尤其是在img.onload中 这里的问题在哪里
编辑后的和img.load()
中的remove()function displayPreview(files)
{ var file = files[0];
var img = new Image();
var sizeKB = file.size / 1024;
img.onload = function(){
alert("Size: " + sizeKB + "KB\nWidth: " + img.width + "\nHeight: "+ img.height);
alert("image is loaded"); }
img.src = _URL.createObjectURL(file);
}
答案 0 :(得分:1)
在()
之后删除img.onload
。 ()
用于执行函数,而不是分配。
答案 1 :(得分:0)
在()
之后移除img.onload
,当您使用带有函数名称的()
时,您正在调用它。您需要定义onload
函数
编辑:
您可以使用FileReader API。
FileReader对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容。
readAsDataURL
方法用于读取指定Blob或File的内容。
注意:它适用于现代浏览器
$(document).ready(function() {
$('#file').change(function(e) {
var file = this.files[0];
var sizeKB = file.size / 1024;
var img = new Image();
img.onload = function() {
alert("Size: " + sizeKB + "KB\nWidth: " + img.width + "\nHeight: " + img.height);
}
var reader = new FileReader();
reader.onload = function(e) {
$('#imagedisplay').attr('src', e.target.result);
img.src = e.target.result;
}
reader.readAsDataURL(file);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="file" id="file" name="file" />
<img id="imagedisplay" src="" />