【问题标题】:There's a way to download large files direct from server? (Without waiting for blob response)有没有办法直接从服务器下载大文件? (无需等待blob响应)
【发布时间】:2020-09-01 09:52:56
【问题描述】:

所以,我正在处理视频文件的请求(使用 axios)。我使用responseType: blob 提出了请求,并等待响应以使用window.URL.createObjectUrl() 创建视频播放器。但是我也有一个按钮,当用户单击时,他可以下载文件。

问题是:大多数文件都很大,超过 150MB,这对于用户等待 blob 响应并开始下载来说是很糟糕的。

有更好的方法吗?无需等待响应并让浏览器处理请求?

【问题讨论】:

  • 你为什么不能像其他任何东西一样链接到它?

标签: javascript vue.js


【解决方案1】:

不可能通过 XHR 请求做得更好(除了在等待请求响应时显示加载元素)。

但是为什么不能直接通过浏览器传递它(使用<a> 元素即时创建技巧)?如果您将端点粘贴到浏览器的地址栏上,它不会打开或下载吗?

【讨论】:

  • 不,当我在浏览器上粘贴时,下载没有开始。和 <a> 元素我有同样的问题:需要等待 blob 响应链接到标签上。
  • 嗯,那是后端问题。您必须以正确的方式发送文件。我只能说我们的 Java 后端正在使用 org.springframework.core.io.InputStreamResource 发送响应(确实包含内容类型和内容配置),其中包含正文中的文件内容
猜你喜欢
  • 1970-01-01
  • 2010-09-29
  • 1970-01-01
  • 1970-01-01
  • 2020-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-23
相关资源
最近更新 更多