首页 > 技术文章 > PHP实现文件下载

dawuge 2020-06-24 00:17 原文

PHP并没有能力实现文件下载,php只能输出内容。
PHP可以借助修改HTTP协议,告诉浏览器不用解析内容,应该当做附件下载。
 
  1. 不要解析
header("Content-type: application/octet-stream"):告诉浏览器当前内容为可执行的流式内容,不需要解析
  1. 告诉浏览器当做附件处理,告诉浏览器附件的名字叫什么
header("Content-Disposition: attachment; filename=具体名字")
当做附件处理:指定名字
 
3.PHP要输出对应的下载内容
 
下载:浏览器从服务器上去获取一个内容,浏览器需要原封不动的保留原来的数据,而不是经过浏览器去解析。
 
默认的,浏览器只有在碰到自己解析不了的情况下,才会提示用户下载。相反的,如果想要使得浏览器不去解析一些自己可以解析的内容,就必须通过http协议(响应)通知浏览器,不必解析。
1.    告诉浏览器不要解析
content-type:application/octet-stream
2.    指导浏览器如何保存文件
content-disposition:attachment;filename

推荐阅读