有这么一个场景:
用户上传一个文件(file.txt), 为了避免重名, 我将其重命名了 - 20100410001.txt, 然后在下载页面我提供一个 <a></a>, 把 href 直接指向服务器上的路径 xxx/xxx/20100410001.txt, 当然下载没有任何问题但是我想了想, 当其他用户下载这个文件, 得到20100410001.txt会很无厘头, 如果下载时的名字是 file.txt (上传用户给的名字肯定比一串数字更加有含义), 这个可不可以实现呢? 上传文件的信息都保留在数据库中 - 原文件名, 大小等等信息都有, 但是不知道如何来做这个手脚, 谢谢大家!
用户上传一个文件(file.txt), 为了避免重名, 我将其重命名了 - 20100410001.txt, 然后在下载页面我提供一个 <a></a>, 把 href 直接指向服务器上的路径 xxx/xxx/20100410001.txt, 当然下载没有任何问题但是我想了想, 当其他用户下载这个文件, 得到20100410001.txt会很无厘头, 如果下载时的名字是 file.txt (上传用户给的名字肯定比一串数字更加有含义), 这个可不可以实现呢? 上传文件的信息都保留在数据库中 - 原文件名, 大小等等信息都有, 但是不知道如何来做这个手脚, 谢谢大家!
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=yourfilename');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
readfile($file);
exit;