將檔案從FTP 伺服器下載到沒有本地儲存的瀏覽器
使用PHP 腳本從FTP 伺服器下載檔案時,通常的做法是儲存在將文件傳送到使用者的瀏覽器之前,它們會暫時儲存在Web 伺服器上。但是,這種方法效率較低。
取得檔案內容而不儲存
要直接將檔案傳送到瀏覽器而不儲存到磁碟,只需刪除輸出緩衝即可函數(ob_start () 和ob_get_contents())。此程式碼將檔案直接傳送到輸出流:
<code class="php">ftp_get($conn_id, "php://output", $file, FTP_BINARY);</code>
新增Content-Length 標頭
要包含Content-Length 標頭,請查詢檔案大小下載前使用ftp_size():
<code class="php">$file_path = "remote/path/file.zip"; $size = ftp_size($conn_id, $file_path);</code>
然後,設置適當的標頭並下載文件:
<code class="php">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中文網其他相關文章!