Php 强制从外部服务器下载并重命名

Php 强制从外部服务器下载并重命名,php,download,rename,Php,Download,Rename,我需要帮助解决我正在开发的工具中的一个问题 我需要下载一个外部文件并将其重命名,但不使用readfile()、file_get_contents()或fread()(文件太大,无法在服务器上读取,无法在visitor PC上再次下载) 我首先尝试的是: 代码: 它适用于下载,但不适用于示例_download.zip重命名 因此,我尝试了readfile(): 代码: 使用上面的代码,它工作得很好,首先在服务器上下载远程文件,重命名它,然后用新名称将它发送给访问者,但是这个过程的资源使用率非常高,

我需要帮助解决我正在开发的工具中的一个问题

我需要下载一个外部文件并将其重命名,但不使用readfile()、file_get_contents()或fread()(文件太大,无法在服务器上读取,无法在visitor PC上再次下载)

我首先尝试的是:

代码:

它适用于下载,但不适用于示例_download.zip重命名

因此,我尝试了readfile():

代码:

使用上面的代码,它工作得很好,首先在服务器上下载远程文件,重命名它,然后用新名称将它发送给访问者,但是这个过程的资源使用率非常高,带宽使用率也很高

因此,我正在寻找一种方法来生成一个外部文件的强制下载,动态重命名它,并生成一个新名称的下载,但直接从源代码下载。有可能吗

提前谢谢
你不可能做到这一点。如果您的php脚本将客户端重定向到其他url,那么所有HTTP头将留给新的url脚本来决定。您必须下载它才能对其进行重命名。

HTML5现在允许您通过
下载属性执行所需操作:

<a href="http://www.example.com/example_download.zip" download="custom_filename.zip">
    Link
</a>

更多信息:


http://updates.html5rocks.com/2011/08/Downloading-resources-in-HTML5-a-download

如果客户端要直接从源代码处下载,那么不,没有办法给它起一个新名称。它是否适用于所有浏览器和所有操作系统?因为,下载属性不适用于基于Linux的操作系统。
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;
<a href="http://www.example.com/example_download.zip" download="custom_filename.zip">
    Link
</a>