ftp_get()
從FTP服務器下載文件並將文件保存到本地服務器。使用PHP將文件從FTP服務器直接下載到瀏覽器
因此,當我想從FTP服務器下載文件到我的瀏覽器時,該文件將首先下載到本地服務器,然後下載到瀏覽器。
這會導致雙重帶寬。有沒有辦法直接從FTP下載文件到瀏覽器?
ftp_get()
從FTP服務器下載文件並將文件保存到本地服務器。使用PHP將文件從FTP服務器直接下載到瀏覽器
因此,當我想從FTP服務器下載文件到我的瀏覽器時,該文件將首先下載到本地服務器,然後下載到瀏覽器。
這會導致雙重帶寬。有沒有辦法直接從FTP下載文件到瀏覽器?
ftp_get()
或curl
或任何PHP腳本都需要打開流源並將其傳遞給客戶端瀏覽器。您仍然使用2個流,導致帶寬使用率增加一倍。避免這種情況的唯一方法是鏈接到或讓最終用戶直接收集文件。
我假設你從私人FTP位置收集文件,傳遞憑據,並且不希望最終用戶擁有這些文件,或者他們不知道它們。但對他們來說,它應該是一個無縫下載。
沒有很多很好的方法來做到這一點。在我看來,在終端用戶瀏覽器中通過Flash進行FTP客戶端連接是一種方法。您可以動態創建閃存或使閃存收集憑證(加密),然後從最終用戶瀏覽器(在解密憑證後)執行到FTP服務器的連接,並將文件直接下載到最終用戶。
您只需將客戶端瀏覽器重定向到ftp://
URL即可。當FTP站點允許匿名讀訪問時,這是可行的。大多數(全部)網頁瀏覽器本地支持FTP。
根據工作流程,你要麼從PHP代碼重定向:
header("Location: ftp://download.example.com/file.pdf");
在您直接使用ftp://
URL中的HTML代碼:
<a href="ftp://download.example.com/file.pdf">Download</a>
如果匿名讀訪問是不允許的,您必須在URL中包含憑據,您可能不想要的憑據。
ftp://username:[email protected]/file.pdf
我的網站位於服務器1和某個文件位於服務器2,沒有解決方案直接從服務器2下載文件到客戶端? – adib16
不通過PHP。由於PHP正在腳本化server1,所以請求將來自server1。如果您希望用戶從server2下載某些內容,則用戶需要連接到server2。 – Twisty