我有一个Adobe Illustrator文件(AI),我们目前在网站上有一个链接,然后将该文件下载到您的计算机上。
链接看起来像这样......
http://domain.com/crm/index.php?entryPoint=fileupload_download&id=22440435-e8ee-bd6f-7612-533b2cd7690f&field=fuaifile_c&type=D1_Designs
我需要做的是在下载时重命名此文件。
所以我问在下载之前是否可以通过另一个PHP文件传递这个下载,这样我就可以动态更改用户下载的文件名。我无法更改服务器上的文件名,但是当它下载时,我希望能够在运行时为文件名添加一些ID号码,如果可能的话?任何想法如何实现这一点,而无需使用新名称在服务器上重新保存图像?
答案 0 :(得分:5)
您要查找的是Content-Disposition
标题,如RFC 2183中所述:
Content-Disposition: attachment; filename=example.ai
您可以使用PHP header()
函数设置此标头。
答案 1 :(得分:2)
只需设置Content-Disposition
:
header('Content-Disposition: attachment; filename="downloaded.pdf"');
(取自PHP文档的示例:http://www.php.net/manual/en/function.header.php)。
添加ID:
$id = generateIdFromSomewhere();
header('Content-Disposition: attachment; filename="downloaded'.$id.'.pdf"');
答案 2 :(得分:2)
这很难看,并假设这些文件不是超出memory_limit的“大”文件,但是
$data = file_get_contents($original_url);
header('Content-disposition: attachment; filename="new name with id numbers');
header("Content-type: application/octet-stream");
echo $data;
你可以随时增强这个来做字节服务 - 从原始网址吸取10k,向用户吐出10k等等......