【问题标题】:FileReader.readystate stuck at 1. Onload is not firedFileReader.readystate 卡在 1。Onload 未触发
【发布时间】:2019-04-23 08:39:13
【问题描述】:

我是 angular7 的新手,我只是想从 html 文件 中的输入类型文件中获取数据。我不明白。我得到了文件的名称和不同的规格,但不是它的正确数据。

重点是 readystate 不会变为 2,因此 result 属性永远不会填充它,因此我无法获取数据。

据我所知:

TS

onChange(event) {
  if (event.target.files && event.target.files.length > 0) {
    const file = event.target.files[0];
    const reader = new FileReader();
    reader.readAsDataURL(file);
    reader.onload = this.saveImage(reader, event);
  }
}

private saveImage (reader: FileReader, ev: ProgressEvent): any {
  this.userInfo.Imagen = (reader.result as string).split(',')[1];
  this.converted_image = this.domSanitizer.bypassSecurityTrustResourceUrl(this.base64 + this.userInfo.Imagen);
  return null;
}

HTML

<input id="file-input" type="file" capture style="display:none" #fileInput (change)="onChange($event)"/>

但我根本没有恢复任何数据。

谢谢小伙伴们。

【问题讨论】:

    标签: angular angular7 filereader onload readystate


    【解决方案1】:

    最后... 很奇怪,希望这个答案能帮助你们所有人,或者至少给你们一个关于这种情况的线索。

    Chrome 版本,从 7375(已修复)在 eventdebugger 命令冲突时会出现问题 断点 由 IDE(实际上是 调试器命令)。

    解决的办法就是在引发和启动事件及其事件方法的循环中消除任何调试器命令

    【讨论】:

    • 创意来自这里:stackoverflow.com/questions/44091937/…(检查发布它的用户的声誉)。但对我来说仍然没有工作。我从实例文件读取器删除断点,直到触发 onload 方法并且现在为我工作。
    • 到目前为止,您正在批评我的回答而不检查它。请为这个问题评分(用赞成票),照顾发布扩展答案,并再次研究以找到您需要的来源......我认为在帮助和奖励用户的努力方面做得很远我们的社区:)
    • 真的男人吗?这是 Chrome 已知的错误。它对我有用,解决了问题......不要小孩子......
    • 您知道我们正在谈论 chrome 中报告和公认的错误...而您正在投票反对...您太棒了...真的。最好的!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-05
    • 1970-01-01
    • 1970-01-01
    • 2014-05-05
    相关资源
    最近更新 更多