我想上传多张图片。当我选择多张图像时,将调用photoSelected函数。我想使用base64,但它会在控制台上显示此错误。
PhotoSelected (e){
Let files = e.target.files;
Let reader = new FileReader();
Let file;
For (let i=0; I<files.length ; i++){
file = files [i];
reader.onload = (file) => {
This.product.photo[i] = reader.result;
}
reader.readAsDataURL(file)
}
}
答案 0 :(得分:0)
您在for循环外定义了阅读器,并在循环内使用了相同的阅读器。这导致阅读器很忙。您可以通过使用IIFE在其自己的范围内为每个循环创建一个读取器来解决此问题。
account_id
由于您已经在使用PhotoSelected (e){
let files = e.target.files;
let reader = new FileReader();
let file;
for (let i=0; I<files.length ; i++){
(function(file) {
var reader = new FileReader();
reader.onload = (file) => {
this.product.photo[i] = reader.result;
}
reader.readAsDataURL(file)
})(files[i]);
}
}
并且使用了块作用域,因此您还可以使用let
在每个循环中创建一个读取器。
let