我想这样做,没有“readfile()”部分:
header("Content-type: application/force-download");
header("Content-Transfer-Encoding: Binary");
header("Content-length: ".filesize($file));
header("Content-disposition: attachment; filename="".basename($file).""");
readfile("$file");
基本上我试图将下载转发到另一个URL,但同时我需要能够设置“filename”之类的标题。
readfile($ file)函数不会对我这么做,因为$ file与PHP脚本(甚至不是同一个数据中心)不存储在同一台服务器上
这甚至可能吗?如果不是通过PHP,也许FLASH可以做到这一点?
答案 0 :(得分:1)
使用PHP执行此操作的唯一方法是让PHP首先从远程服务器下载文件,然后将其发送给用户。实际上,您可以使用readfile
,因为它支持fopen包装器,只要您的服务器上启用了该选项。
答案 1 :(得分:1)
如果您真的希望通过PHP以这种方式下载文件,可以使用
header("Content-disposition: attachment; filename=myfile.jpg");
echo file_get_contents("http://host.tld/path/to/myfile.jpg")
引自拜伦·惠特洛克的另一个问题here。 他解释说,这段代码会将文件放入临时存储空间,因此原始文件的下载和删除将自动处理。
如果您不必使用PHP,可以使用页面上隐藏的iFrame下载文件