如何在 PHP 中直接从 FTP 下载文件到用户的浏览器而不需要磁盘存储?

Susan Sarandon
发布: 2024-11-02 12:03:30
原创
485 人浏览过

How to Directly Download Files from FTP to User's Browser in PHP without Disk Storage?

通过 PHP 脚本从 FTP 下载文件到浏览器,无需磁盘存储

使用 PHP,可以从 FTP 服务器高效地检索文件。但是,如果目标是绕过本地磁盘存储直接将文件传递到用户的浏览器怎么办?

没有输出缓冲的方法:

要实现这一点,只需简单地删除输出缓冲函数(ob_start() 及其对应函数):

<code class="php">ftp_get($conn_id, "php://output", $file, FTP_BINARY);</code>
登录后复制

添加Content-Length 标头:

要包含 Content-Length 标头,请按照以下步骤操作:

  1. 使用 ftp_size() 查询文件大小。
  2. 设置内容类型、配置和长度的 HTTP 标头。
  3. 使用 ftp_get() 直接检索文件到浏览器。

代码示例:

<code class="php">$conn_id = ftp_connect("ftp.example.com");
ftp_login($conn_id, "username", "password");
ftp_pasv($conn_id, true);

$file_path = "remote/path/file.zip";
$size = ftp_size($conn_id, $file_path);

header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=" . basename($file_path));
header("Content-Length: $size"); 

ftp_get($conn_id, "php://output", $file_path, FTP_BINARY);</code>
登录后复制

附加说明:

  • 记住正确处理错误。
  • 有关处理 FTP 的全面概述文件,请参阅“从 FTP 列出并下载点击的文件”文档。

以上是如何在 PHP 中直接从 FTP 下载文件到用户的浏览器而不需要磁盘存储?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!