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

时间:2015-05-04 15:34:01

标签: php ftp

ftp_get()从FTP服务器下载文件并将文件保存到本地服务器。

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

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

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

您只需将客户端浏览器重定向到ftp://网址即可。当FTP站点允许匿名读取访问时,这是可行的。大多数(所有)Web浏览器本身都支持FTP。

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

header("Location: ftp://download.example.com/file.pdf");

在HTML代码中直接使用ftp://网址:

<a href="ftp://download.example.com/file.pdf">Download</a>

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

ftp://username:password@download.example.com/file.pdf