Skip to content

web 文件下载

直接下载

通过访问文件utl直接下载文件

流式下载

接口读取字节流实现下载

通过blob读取字节流转换成URL(createObjectURL、revokeObjectURL),然后通过a标签下载

通过form表单下载

通过form表单提交请求,让后通过form的target打开一个新窗口来获取下载资源

大文件下载

分片下载

  • 首先请求文件大小,按照文件大小进行分片
  • 迭代每次请求,需要在头部中传递要接受的响应类型和字节范围(Range: bytes=0-1048576
  • 使用promise.all获取全部请求
  • 最后通过blob合并文件流,并条用a标签下载

流式获取,边读边下载

上面的分片下载方式并不适用于文件超出内存的场景,此种情况需要将已经获取的内容写入到文件中

js