Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 文件API-reader.onload从未触发?_Javascript_Jquery_Fileapi - Fatal编程技术网

Javascript 文件API-reader.onload从未触发?

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=新文件读取

我有多个文件输入,并希望为每个输入生成上载文件的预览。我正在等待所有这些输入的更改,然后触发新的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红色; }
您需要通过读取实际文件来触发事件

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);
}