php强制下载文件并显示原始文件名

靖西网牛牛动态域名 2019-02-23

  原来一直没有接触过,这几天一直在玩儿文件上传下载的东西。今天又遇到一个坑。

  描述:文件上传至服务器后,如果是rar或则其他的非浏览器直接识别的格式,用户点击链接了后是可以直接就被下载下来的。那么如果上传的是php的文件类型呢?这个就涉及到header了。

  解决方案:利用header可以强制请求下载文件。

  1. header("Content-Type: application/force-download");
  2. header("Content-Disposition: attachment; filename=".($attach['attachname']));
  3. readfile(SITE_URL . 'uploadfile/code/' . $attach ['attachurl']);

  解释:第一个,强制表示为下载,

  第二个,下载后显示的文件名。因为服务器上存储的文件不可能是原文件名,因此下载时为了保证用户能够直观的看到自己下载的文件,利用这个方式可以控制用户看的文件名。

  第三个,读取文件。之前的做法超级low,直接用header重定向指到下载文件的地址。

  

  改天写一个完整的文件上传,在线编辑的例子,记载下来!

浏览502818 / 回复0
举报内容
返回 [发帖] 发回复:评论……

+
提交评论