繁体   English   中英

未捕获的 DOMException:无法在“FileReader”上执行“readAsDataURL”

[英]Uncaught DOMException: Failed to execute 'readAsDataURL' on 'FileReader'

我的任务是创建和上传图像文件,但我遇到了 blob 和 base64 项目的问题,Blob URL 按预期工作,但是当我尝试使用 FileReader 时,它显示该项目正忙于读取 blob。 我还尝试删除 URL 的代码文件,保留文件阅读器代码,但仍然存在相同的问题。 以及每次在创建base64后如何停止它时如何调用onload。 或者也可以将 blob URL 转换为 base64

 uploadImageChange(e){
  const file = e.target.files[0];
  this.showImageModalErrorMessage = false;
  let fileReader = new FileReader();
  fileReader.onload = function(fileLoad){
    console.log(fileReader.readAsDataURL(file));
  }
  if(file.size < 2000){
    this.imageSelectedUrl = URL.createObjectURL(file);
    this.showImageSaveContent = true;
    this.modalSecondInstruction = true;
  }else{
    this.imageModalErrorMessage = "The image you chose is bigger than 2 MB. Kindly upload a smaller-sized photo."
    this.showImageModalErrorMessage = true;
  }
},

试试这个方法

let fileReader = new FileReader();
fileReader.readAsDataURL(file);
fileReader.onload = function(fileLoad){
consoloe.log(fileReader.result);
}

有一个类似的问题,下面的代码对我来说很好。

fileReader(file: any) {
  const reader = new FileReader();
  reader.onloadend = () => {
    const formData = new FormData();
    const blobFile = new Blob([reader.result], { type: file.type });
    formData.append("file", blobFile, "filename");
    // POST formData call
  };
  reader.readAsArrayBuffer(file);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM