我正在尝试上传一个图像,并显示正在进行的加载百分比。
<!DOCTYPE html>
<html>
<head>
<title></title>
<script type="text/javascript">
function myFunction(){
console.dir(event.target.files[0].name);
var reader = new FileReader();
reader.onprogress = function(progressEvent) {
if(progressEvent.lengthComputable) {
var percentLoaded = Math.round( (
progressEvent.loaded * 100) / progressEvent.total );
}
console.log("total: " + progressEvent.total + ", loaded: "
+ progressEvent.loaded + "(" + percentLoaded + "%)");
}
}
</script>
</head>
<body>
<input type="file" id="myFile" accept="image/*" onchange="myFunction()">
</body>
</html>
当我上传一张图片时,"onchange“会被触发。但是reader.onprogress没有被触发。如何触发进程中的事件?
发布于 2018-01-05 21:23:00
Event
是function.So中的undefined
,在更改函数中传递event
,并通过readAsDataURL
将文件插入reader
函数。
function myFunction(e) {
console.dir(e.target.files[0].name);
var reader = new FileReader();
reader.readAsDataURL(e.target.files[0]) //insert the file into reader
reader.onprogress = function(progressEvent) {
if (progressEvent.lengthComputable) {
var percentLoaded = Math.round((
progressEvent.loaded * 100) / progressEvent.total);
}
console.log("total: " + progressEvent.total + ", loaded: " +
progressEvent.loaded + "(" + percentLoaded + "%)");
}
}
<input type="file" id="myFile" accept="image/*" onchange="myFunction(event)">
https://stackoverflow.com/questions/48124477
复制