【发布时间】:2012-03-03 23:23:34
【问题描述】:
我需要帮助解决我正在开发的工具中的问题。
我需要下载一个外部文件并重命名它,但不使用 readfile()、file_get_contents() 或 fread()(文件太大,无法在服务器上读取它们并在访问者 PC 上再次下载)。
我首先尝试过:
代码:
header("Location: http://www.example.com/example_download.zip");
它适用于下载,但不适用于 example_download.zip 重命名。
所以我尝试了 readfile():
代码:
header("Content-Disposition: attachment; filename="example_download_2.zip"\n\n");
header("Content-Type: application/force-download");
readfile("http://www.example.com/example_download.zip");
exit;
上面的代码效果很好,先在服务器上下载远程文件,重命名后用新名字发送给访问者,但是这个过程的资源占用很高,而且带宽占用也很大.
所以我正在寻找一种方法来生成外部文件的强制下载,即时重命名并使用新名称生成下载,但直接从源下载。不可能吗?
提前致谢 问候
【问题讨论】:
-
如果客户端要直接从源码下载,那么不行,没办法给它起个新名字。