如何从 FTP 下载文件并使用 PHP 将其流式传输到客户端

Posted

技术标签:

【中文标题】如何从 FTP 下载文件并使用 PHP 将其流式传输到客户端【英文标题】:How to download a file from FTP and stream it to client using PHP 【发布时间】:2012-11-18 00:02:23 【问题描述】:

当有人通过 url:http://domain.com/FILE_ID 访问我的网站时,php 将连接到 ftp 服务器并获取 FILE_ID,然后将其流式传输到客户端而不将其保存在本地服务器上。我不想为我的客户提供指向我在 ftp 服务器上的文件的链接,而是想到了这一点。

有谁知道我可以如何做到这一点?

我在想我可以使用“ftp_get()”方法从 ftp 获取文件,但这需要我在本地服务器上写入(或者我错了吗?)。之后使用 PHP 头文件强制下载。

基本上任何和每条信息都是有用的。只是这样我才能开始朝着正确的方向前进。

【问题讨论】:

afaik readfile() 支持 ftp:// 流包装器 php.net/manual/en/function.readfile.php#76483 哦,太好了!不知道 readfile() 是否支持 ftp。优秀的!非常感谢。 【参考方案1】:

您所追求的是 Curl 库 - 因为它可以处理 FTP。 See this,它有一个FTP示例。

或者,如果您的服务器具有 file_get_contents 的 URL 绑定,则可以使用

file_get_contents("ftp://username:password@server/path/to/file.ext");

获取 FTP 服务器上远程文件的内容。

【讨论】:

记得在将内容流式传输给用户之前正确设置标题。

以上是关于如何从 FTP 下载文件并使用 PHP 将其流式传输到客户端的主要内容,如果未能解决你的问题,请参考以下文章

如何使用FTP将我电脑上的文件传给别人

突破PHP免费空间文件格式上传限制-FTP传zip,PHP解压zip文件 - 比单文件管理器更好用

突破PHP免费空间文件格式上传限制-FTP传zip,PHP解压zip文件 - 比单文件管理器更好用

C# 从FTP下载文件报错: 远程服务器返回错误: (550) 文件不可用(例如,未找到文件,无法访问文件)。

防止用户在从远程 ftp 服务器 cocoa 流式传输文件时重命名文件

从FTP下载时如何检查文件是不是存在