使用PHP将文件从FTP服务器直接下载到浏览器

使用PHP将文件从FTP服务器直接下载到浏览器,php,ftp,Php,Ftp,ftp\u get()从ftp服务器下载文件并将文件保存到本地服务器 因此,当我想将文件从FTP服务器下载到浏览器时,文件将首先下载到本地服务器,然后再下载到浏览器 这导致带宽加倍。有没有办法将文件从FTP直接下载到浏览器?FTP\u get()或curl或任何PHP脚本都需要打开一个流到源代码,并将其传递到客户端浏览器。您仍然使用2个流,导致带宽使用率加倍。避免这种情况的唯一方法是链接到或让最终用户直接收集文件 我假设您正在从私有FTP位置收集文件,并传递凭据,您不希望最终用户拥有这些凭据,或

ftp\u get()
从ftp服务器下载文件并将文件保存到本地服务器

因此,当我想将文件从FTP服务器下载到浏览器时,文件将首先下载到本地服务器,然后再下载到浏览器

这导致带宽加倍。有没有办法将文件从FTP直接下载到浏览器?

FTP\u get()
curl
或任何PHP脚本都需要打开一个流到源代码,并将其传递到客户端浏览器。您仍然使用2个流,导致带宽使用率加倍。避免这种情况的唯一方法是链接到或让最终用户直接收集文件

我假设您正在从私有FTP位置收集文件,并传递凭据,您不希望最终用户拥有这些凭据,或者他们不知道这些凭据。但对他们来说,这应该是一个无缝下载


没有很多好方法可以做到这一点。在我看来,通过最终用户浏览器中的Flash建立FTP客户端连接是一种方法。您可以动态创建flash或让flash收集凭据(加密),然后从最终用户浏览器执行到FTP服务器的连接(解密凭据后),并将文件直接下载到最终用户。

您所能做的就是将客户端浏览器重定向到
FTP://
URL。当FTP站点允许匿名读取访问时,这是可行的。大多数(所有)web浏览器本机支持FTP

根据工作流,您可以从PHP代码重定向:

header("Location: ftp://download.example.com/file.pdf");
在HTML代码中直接使用
ftp://
URL:


如果不允许匿名读取访问,则必须在URL中包含凭据,这可能是您不希望的

ftp://username:password@下载:example.com/file.pdf

my site位于服务器1中,一些文件位于服务器2中。没有解决方案可以将文件从服务器2直接下载到客户端,而不是通过PHP。由于PHP正在编写server1脚本,因此请求将来自server1。如果希望用户从server2下载某些内容,则用户需要连接到server2。