Accept-Length无法获取下载文件大小解决方法

随心笔谈2个月前更新 admin
217 00
🌐 经济型:买域名、轻量云服务器、用途:游戏 网站等 《腾讯云》特点:特价机便宜 适合初学者用 点我优惠购买
🚀 拓展型:买域名、轻量云服务器、用途:游戏 网站等 《阿里云》特点:中档服务器便宜 域名备案事多 点我优惠购买
🛡️ 稳定型:买域名、轻量云服务器、用途:游戏 网站等 《西部数码》 特点:比上两家略贵但是稳定性超好事也少 点我优惠购买

文章摘要

在PHP下载文件时,通过设置特定的header信息可以向浏览器传递文件的详细信息。文章重点介绍了一个关键的header指令:“header("Content-Length: ***")”,该指令用于告诉浏览器文件的具体大小,便于浏览器进行缓存和压缩处理。然而,用户在实际操作中发现无法获取下载数据的大小,经过研究发现,“Accept-Length”实际上是一个误导,正确的指令应为“Content-Length”。修改后,问题迎刃而解,确保了下载功能的正常运行。

php下载文件时,我们一般会加上如下的header信息:

1
2
3
4
header("Content-type: application/octet-stream");
header("Accept-Ranges: bytes");
header("Accept-Length:".$fileSize); //请用Content-Length
header("Content-Disposition: attachment; filename=".$fileName);

其中header(“Accept-Length:”.$fileSize);是获取文件的大小,并可以返回数据给浏览器展示。

我却遇到怎么也获取不到下载数据大小的问题,虽然不影响正常的功能,但是为了追求完美,我要探个究竟。

Accept-Length无法获取下载文件大小解决方法

最后才发现

1
header("Accept-Length:***");

这其实是一个误导,其实正确的应该是

1
header("Content-Length:***");

修改之后,果然就正确了。

© 版权声明

相关文章