• 10万+阅读
  • 0回复

微信扫一扫分享精彩

分享到

 

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重定向指到下载文件的地址。

  

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

帖子签名
快速回复
限150 字节
 
 
添 加 图 片
<--上传图片在这里,多大图片都可以!
上一个 下一个
      关闭