首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Angular无法从Google Chrome服务器下载大于10MB的文件

Angular无法从Google Chrome服务器下载大于10MB的文件
EN

Stack Overflow用户
提问于 2019-03-12 00:26:30
回答 4查看 5.2K关注 0票数 7

我正在使用我的Angular 6应用程序中的一个服务从我的REST API下载一个文件(blob)。这项服务可以完美地处理小于10MB的文件(在Chrome和其他浏览器上)。我目前正在尝试下载一个14MB的文件,但它失败了,只在Chrome上(在Firefox上可以正常工作)

我认为这是Chrome的一个限制,但我在SO或Angular文档上找不到任何关于这方面的信息。

这是我的服务

代码语言:javascript
运行
复制
displayFile(url: string) {
    const headers = new HttpHeaders({ 'Content-Type': 'application/json' });
    this.http.post('my_backend_path/getFile', JSON.stringify({urlData: url}), {responseType: "blob", headers})
      .subscribe((data: any) => {
          var urlBlob = window.URL.createObjectURL(data);
          window.open(urlBlob);
        },
        (error) => {
          //Here comes the error
        });
  }

我的Node REST API正确返回了状态为200的文件。失败来自Chrome控制台,如下所示:

代码语言:javascript
运行
复制
POST my_backend_path/getFile net::ERR_FAILED 200 (OK)

在chrome的网络调试器中,我可以读到文件大小估计为10.0MB (而文件实际大小为14MB )。这就是为什么我认为这是由于一些Chrome或Angular HTTPClient的限制。

有谁有主意吗?

EN

回答 4

Stack Overflow用户

发布于 2019-07-19 16:59:35

我认为您需要将responseType :更改为ArrayBuffer。对我来说很管用

代码语言:javascript
运行
复制
{responseType: "arrayBuffer", headers})
票数 5
EN

Stack Overflow用户

发布于 2020-03-06 01:24:26

我有这个问题- Chrome在API调用中记录了net::ERR_FAILED 200 (OK),它返回了超过10mb的json。令人惊讶的是,它在隐身模式下工作,周围没有人受到影响。

在我的例子中,解决方案是清理C: drive。它的磁盘空间很小(大约200Mb)。在磁盘清理之后,Chrome开始运行了。

票数 5
EN

Stack Overflow用户

发布于 2019-10-26 02:18:47

面临着完全相同的问题。但奇怪的是,这个下载在chrome的隐身模式下运行得很好。你可以尝试同样的方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55106303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档