Javascript 文件API-reader.onload从未触发?
我有多个文件输入,并希望为每个输入生成上载文件的预览。我正在等待所有这些输入的更改,然后触发新的FileReader。不幸的是,onload操作从未触发,我做错了什么 $body.onchange、.file、functionevent{ 显示预览事件; } 函数showPreviewevent{ console.logshowPreview已启动; var file=event.target.files[0]; 加载的console.logfile:,文件; var reader=新文件读取器; console.logreader已启动:,读取器; reader.onload=functionevent{ console.logthis从不工作:,事件; console.logevent.target.result; }; } 标签{ 保证金:0自动; 显示:块; 宽度:200px; 高度:100px; } .预览{ 显示:内联块; 宽度:50px; 高度:50px; 边框:实心5px红色; }Javascript 文件API-reader.onload从未触发?,javascript,jquery,fileapi,Javascript,Jquery,Fileapi,我有多个文件输入,并希望为每个输入生成上载文件的预览。我正在等待所有这些输入的更改,然后触发新的FileReader。不幸的是,onload操作从未触发,我做错了什么 $body.onchange、.file、functionevent{ 显示预览事件; } 函数showPreviewevent{ console.logshowPreview已启动; var file=event.target.files[0]; 加载的console.logfile:,文件; var reader=新文件读取
您需要通过读取实际文件来触发事件 reader.readAsDataURLfile;或reader.readAsTextfile 然后可以插入图像:
$span.html('<img src="' + event.target.result + '" />')
$body.onchange、.file、functionevent{
显示预览事件;
}
函数showPreviewevent{
console.logshowPreview已启动;
var$span=$event.target.prev;
var file=event.target.files[0];
加载的console.logfile:,文件;
var reader=新文件读取器;
console.logreader已启动:,读取器;
reader.onload=functionevent{
console.logevent.target.result;
$span.html
};
reader.readAsDataURLfile;
}
标签{
保证金:0自动;
显示:块;
宽度:200px;
高度:100px;
}
.预览{
显示:内联块;
宽度:50px;
高度:50px;
边框:实心5px红色;
}
您需要通过读取实际文件来触发事件 reader.readAsDataURLfile;或reader.readAsTextfile 然后可以插入图像:
$span.html('<img src="' + event.target.result + '" />')
$body.onchange、.file、functionevent{
显示预览事件;
}
函数showPreviewevent{
console.logshowPreview已启动;
var$span=$event.target.prev;
var file=event.target.files[0];
加载的console.logfile:,文件;
var reader=新文件读取器;
console.logreader已启动:,读取器;
reader.onload=functionevent{
console.logevent.target.result;
$span.html
};
reader.readAsDataURLfile;
}
标签{
保证金:0自动;
显示:块;
宽度:200px;
高度:100px;
}
.预览{
显示:内联块;
宽度:50px;
高度:50px;
边框:实心5px红色;
}
您需要在事件处理程序中调用readAsText
看
工作代码:
您需要在事件处理程序中调用readAsText
看
工作代码:
@Teemu没有,我看不到这在日志中的任何地方都不起作用。。。您不会对新创建的reader对象执行任何操作onload@Teemu是的,我会,但我不能,因为卸载从未发生过。仅仅创建FileReader实例不会触发其onload事件。正如mplungjan所说,你必须读取一个文件…@Teemu它没有,我看不到这在日志中的任何地方都不起作用。。。您不会对新创建的reader对象执行任何操作onload@Teemu是的,我会,但我不能,因为卸载从未发生过。仅仅创建FileReader实例不会触发其onload事件。正如mplungjan所说,你必须读一个文件。。。
function showPreview(event){
// ... rest of your code
reader.onload = function(event) {
console.log("this never works : ", event);
console.log(event.target.result);
};
reader.readAsText(file);
}