如何从 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 头文件强制下载。
基本上任何和每条信息都是有用的。只是这样我才能开始朝着正确的方向前进。
【问题讨论】:
afaikreadfile()
支持 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 将其流式传输到客户端的主要内容,如果未能解决你的问题,请参考以下文章
突破PHP免费空间文件格式上传限制-FTP传zip,PHP解压zip文件 - 比单文件管理器更好用
突破PHP免费空间文件格式上传限制-FTP传zip,PHP解压zip文件 - 比单文件管理器更好用
C# 从FTP下载文件报错: 远程服务器返回错误: (550) 文件不可用(例如,未找到文件,无法访问文件)。