2013-01-22 34 views
-1

我需要知道的是如何下載存儲在路徑中的文件。是否有必要將內容存儲在數據庫中?當我介紹另一個網站時,它給了我一個解決方案,其中文件的內容存儲在分貝使用file_get_content方法,並通過它下載文件。是否有另一種方式?我已經檢查不使用該方法,但即使發生下載,內容也不顯示。PHP-無需使用file_get_contents方法下載文件

+0

請嘗試[readfile](http://us3.php.net/readfile)。 – datasage

+0

也尋找捲曲 –

+0

我沒有看到「在數據庫」和「file_get_contents」之間的連接。請告訴你爲什麼你不能使用file_get_contents,因爲http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem – Nanne

回答

0

實際上有兩個opstions:

1.存放在一個數據庫中的文件
爲了做到這一點,你需要閱讀的文件的內容到內存中,然後將其存儲在數據庫。 file_get_contents()是讀取文件以將其存儲在數據庫中的合理選擇。

優點:更容易。 缺點:當數據集較大時,性能和管理性能較差。
推薦用於:小文件&& simpel項目。

2.在磁盤上存儲
文件的替代選擇是在磁盤上存儲的文件,並在數據庫中存儲的路徑到該文件。從磁盤獲取文件並將其發送給客戶端的最佳方法是readfile();它從磁盤讀取並直接將內容流式傳輸到瀏覽器。

優點:更好的可擴展性(所有網站使用此方法)。 缺點:更復雜。
推薦用於:較大的文件||較大的項目。

1

一旦文件在服務器上,您可以停止說「下載」。現在正確的術語是「讀取文件」。

老實說,file_get_contents()是最好的選擇,如果你只需要將整個文件讀入一個變量,然後做它的東西。這是打算用於本地文件,但人們也喜歡用它來獲取遠程文件。 [那些人是錯誤恕我直言。 :P]

如果你想要使用別的東西,總是會有fread(),或者使用與fgets()的循環。