多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 文件下载 ## [PHP交流群:494826865(点击群号立即加群)](https://jq.qq.com/?_wv=1027&k=50Qy5h6) >要下载文件,首先需要有一个要下载文件的地址。 ## 例:要下载 `download.rar` ### html 代码 ~~~ <a href="./download.rar">下载</a> ~~~ ### 效果: <a href="./download.rar">下载</a> >[success]这里点击下载,就会直接弹出下载窗口。如下图: >![](https://box.kancloud.cn/7e24a0e0c3235da116310236a7b75b2d_563x426.png) > >[danger] 这种方式实现仅通实现浏览器解析不了的文件,才会提示附件下载,如果像`PHP`、`THML`、`ASP`、`JPG`等这些文件使用这种方法是无法进行下载的。 >【解决办法】告诉浏览器,要访问的文件以附件方式访问,即可。 >使用头信息,告诉浏览器以附件处理 >在这里以PHP为例: > ## `download.html`,`download.jpg`,`download.php`等浏览器可解析文件的下载 >[success]这种文件,需要在浏览器解析之前,首先告诉浏览器该文件是附件。这时,需要一个中间文件,比如要下载`download.html`这里需要写一个`html.php`文件,其内容如下: > ~~~ <?php $file="./download.html"; //获取文件名 $filename=basename($file); //在浏览器输入内容之前,要先加入头信息来告诉浏览器下面的内容要以附件处理。 //设置类型为二进制的 header('Content-Type: application/octet-stream');//这个可以省略,会自动视别 //告诉浏览器以附这处理,这句最为重要 header('Content-Disposition: attachment; filename='.$filename); //获取下载文件大小,不是必须的 header('content-Length:'.filesize($file)); //文件内容全部输出 readfile($file); ~~~