文件流形式的下载,有办法触发浏览器的自带下载进度功能吗

2021-12-24 15:29:00 +08:00
 1sm23

response header

HTTP/1.1 200 OK
Server: nginx/1.21.3
Date: Fri, 24 Dec 2021 06:19:29 GMT
Content-Type: application/zip
Transfer-Encoding: chunked
Connection: keep-alive
X-RateLimit-Remaining: 0
X-RateLimit-Requested-Tokens: 1
X-RateLimit-Burst-Capacity: 1
X-RateLimit-Replenish-Rate: 1
Content-Disposition: attachment; filename=%E6%8A%BD%E6%A0%B7%E7%BB%93%E6%9E%9C.zip
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Referrer-Policy: no-referrer
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: *
Access-Control-Allow-Headers: DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization

现在是等文件传完了,chrome 底部才出文件下载完成

如果实在做不到就只能自己监听进度写进度条了

896 次点击
所在节点    问与答
6 条回复
sunjiayao
2021-12-24 15:44:16 +08:00
response header 加下 Content-Length 试试
coderluan
2021-12-24 15:45:23 +08:00
你得加个 Content-Length 或者 Content-Disposition 加个 size 吧,要不肯定不知道进度啊,哪怕你自己监听也得加吧。
1sm23
2021-12-24 15:45:33 +08:00
@sunjiayao #1 感谢回复!加 Content-Length 试过了😂
1sm23
2021-12-24 15:54:26 +08:00
@coderluan #2 同事说他试的时候是随便加的 Content-Length ,是一定要是文件的准确大小?
sunjiayao
2021-12-24 15:58:22 +08:00
可以随便写 写大点 单位是字节
coderluan
2021-12-24 15:58:30 +08:00
@1sm23 你要准确进度自然得准确大小啊,因为进度就是已接受长度除文件总长度,流文件本身又没总长度信息的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/824238

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX