PHP(或Flash)文件下载 - 设置标题然后重定向

时间:2011-02-03 08:08:42

标签: php flash

我想这样做,没有“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可以做到这一点?

2 个答案:

答案 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下载文件