文件阅读器错误:对象正忙于读取blob
FileReader error: The object is already busy reading Blobs
我正在制作一个用于照片库上传的拖放文件上传系统。这是我处理丢失文件的源代码。这个适用于多个文件如果我一个一个地删除它们,它会工作但当我同时删除多个文件时,会出现这个错误:
Uncaught InvalidStateError: Failed to execute 'readAsDataURL' on 'FileReader': The object is already busy reading Blobs.
function handleFiles(files)
{
var reader = new FileReader();
var formdata = new FormData();
$.each(files, function(i, j)
{
$("td.photos span.status").html("Processing file: "+j.name);
formdata.append('file', j);
$.ajax({
url: "uploadalbum.php",
type: "POST",
dataType: "json",
data: formdata,
processData: false,
contentType: false,
success: uploadfinished
});
reader.onload = handleReaderLoad;
reader.readAsDataURL(j);
});
}
任何想法?
我想错误已经给你了。
在'FileReader'上执行'readAsDataURL'失败:对象正忙于读取Blobs
所以文件阅读器已经很忙了,但只有当你删除多个文件时?那么它可能正忙于处理第一个文件(第二个文件崩溃)。
当你把var reader = new FileReader();
放到jQuery的每个循环中,它会像下面这样工作:
$.each(files, function(i, j)
{
var reader = new FileReader();
$("td.photos span.status").html("Processing file: "+j.name);
formdata.append('file', j);
.... <snip>
}
可能导致这种情况的情况是文件读取器被调用两次。如果它仍在运行,它将发出此错误。
reader.onload = function( event ) {
// do stuff
};
reader.readAsDataURL( file );
/* arbitrarily complex code */
reader.readAsDataURL( file2 );
/* oops */
您可以尝试重新初始化FileReader对象。
<script type="text/javascript">
debugger;
////////////////Write-1/////////////////////////
var blob = new Blob([], {type: "text/plain"});
for (var i=0; i<10; i++)
{
blob = new Blob([blob," "+i], {type: "text/plain"});
}
/////////////////Write-2//////////////////////////
var parts = [];
for (var i = 11; i < 20; i++)
{
parts.push(" " + i);
}
var blob1 = new Blob(parts);
//////////////////Read-1////////////////////////////
var def = new FileReader();
def.addEventListener("loadend", function(e) { var x = e.srcElement.result; alert(x); });
def.readAsText( blob );
///////////////////Read-2///////////////////////////////
def = new FileReader();
def.addEventListener("loadend", function(e) { var x = e.srcElement.result; alert(x); });
def.readAsText( blob );
/////////////////////////////////////////////////
</script>
相关文章:
- 从桌面读取python文件时高亮显示代码
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 使用Dnamics CRM 2011中的JavaScript读取子网格的所有记录,而不考虑活动页面
- 节点Js:How to catch a“;没有这样的文件或目录“;读取线模块出错
- TypeError:无法读取属性'推'未定义的JavaScript
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- 未捕获的TypeError无法读取未定义的属性socialsharing
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- NodeJS-readline暂停和恢复事件发射器(逐行读取)
- 未捕获的类型错误:无法读取属性'删除'的未定义
- AngularJS指令出错-无法读取属性'编译'的未定义
- 未捕获的类型错误:无法读取属性'name'即使它存在,也无法定义
- 如何在Javascript中读取unsigned int
- 如何读取表单中的输入数据
- 通过传递图像的URL通过javascript读取/处理图像-类似于PHP中的file_get_contents
- 看到“;未捕获的类型错误:无法读取属性'weight'未定义的“;尽管按照字面上的指示
- angularjs无法读取未定义的属性then
- 用JavaScript读取本地文件:单个文件等价于files属性
- 当专注于一列时,读取表的顺序会紊乱