簡體   English   中英

使用PHP將文件從FTP服務器直接下載到瀏覽器

[英]Download file from FTP server directly to browser with PHP

ftp_get()從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");

在您的HTML代碼中直接使用ftp:// URL:

<a href="ftp://download.example.com/file.pdf">Download</a>

如果不允許匿名讀取訪問,則必須在URL中包括憑據,這可能是您不希望的。

ftp://username:password@download.example.com/file.pdf

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM