通过 PHP 脚本从 FTP 下载文件到浏览器,无需磁盘存储
使用 PHP,可以从 FTP 服务器高效地检索文件。但是,如果目标是绕过本地磁盘存储直接将文件传递到用户的浏览器怎么办?
没有输出缓冲的方法:
要实现这一点,只需简单地删除输出缓冲函数(ob_start() 及其对应函数):
<code class="php">ftp_get($conn_id, "php://output", $file, FTP_BINARY);</code>
添加Content-Length 标头:
要包含 Content-Length 标头,请按照以下步骤操作:
代码示例:
<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>
附加说明:
以上是如何在 PHP 中直接从 FTP 下载文件到用户的浏览器而不需要磁盘存储?的详细内容。更多信息请关注PHP中文网其他相关文章!