原来一直没有接触过,这几天一直在玩儿文件上传下载的东西。今天又遇到一个坑。
描述:文件上传至服务器后,如果是rar或则其他的非浏览器直接识别的格式,用户点击链接了后是可以直接就被下载下来的。那么如果上传的是php的文件类型呢?这个就涉及到header了。
解决方案:利用header可以强制请求下载文件。
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=".($attach['attachname']));
readfile(SITE_URL . 'uploadfile/code/' . $attach ['attachurl']);
解释:第一个,强制表示为下载,
第二个,下载后显示的文件名。因为服务器上存储的文件不可能是原文件名,因此下载时为了保证用户能够直观的看到自己下载的文件,利用这个方式可以控制用户看的文件名。
第三个,读取文件。之前的做法超级low,直接用header重定向指到下载文件的地址。
改天写一个完整的文件上传,在线编辑的例子,记载下来!