use*_*526 5 javascript filereader
我只是尝试使用 FileReader 来显示图像文件,但是当我尝试使用 1 个以上的图像时,我得到以下“InvalidStateError:DOM Exception 11”。但是,在 Firefox 中,它运行良好。
这是我的代码
function addImages(images)
{
var reader=new FileReader()
reader.onload=function()
{
$("#images").append('<img src="'+this.result+'"/><br/>')
}
for(var count=0;count<images.length;count++)
{
reader.readAsDataURL(images[count])
}
}
function uploadImagesToBrowser(e)
{
addImages(e.target.files)
}
$("#imagefiles").on("change",uploadImagesToBrowser)
Run Code Online (Sandbox Code Playgroud)
不幸的是不起作用。正如 janje 所提到的,您需要在每次迭代中创建一个新的 FileReader。还记得在绑定事件处理程序时创建一个闭包,因为JavaScript中的“在循环中创建函数”问题。
Eric Bidelman 的帖子是一个相当不错的来源:
function handleFileSelect(evt) {
var files = evt.target.files; // FileList object
// Loop through the FileList and render image files as thumbnails.
for (var i = 0, f; f = files[i]; i++) {
var reader = new FileReader();
// Closure to capture the file information.
reader.onload = (function(theFile) {
return function(e) {
// Render thumbnail.
};
})(f);
// Read in the image file as a data URL.
reader.readAsDataURL(f);
}
}
Run Code Online (Sandbox Code Playgroud)