PHP 스크립트에서는 FTP 서버에서 파일을 가져오는 것이 일반적인 작업입니다. 그러나 이러한 파일을 사용자의 브라우저로 보내기 전에 웹 서버에 저장하는 것은 바람직하지 않을 수 있습니다. 이 기사에서는 서버 저장을 우회하고 리디렉션을 피하면서 FTP 서버에서 브라우저로 직접 파일을 다운로드하는 방법을 살펴봅니다.
초기 코드는 ftp_get( ) 및 ob_start():
<code class="php">public static function getFtpFileContents($conn_id , $file) { ob_start(); $result = ftp_get($conn_id, "php://output", $file, FTP_BINARY); $data = ob_get_contents(); ob_end_clean(); if ($resul) return $data; return null; }</code>
파일을 저장하지 않고 브라우저로 직접 스트리밍하려면 출력 버퍼링을 제거하세요.
<code class="php">ftp_get($conn_id, "php://output", $file, FTP_BINARY);</code>
Content-Length 헤더를 포함하려면 ftp_size()를 사용하여 파일 크기를 쿼리하세요.
<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 중국어 웹사이트의 기타 관련 기사를 참조하세요!