我需要使用PHP下載文件,然後將下載的文件上傳到用戶。然後下載然後上傳一個PHP文件
例如從test.com/test.zip
要麼
下載文件的文件緩存到磁盤或立即流式傳輸到用戶。
如果可能的話我怎麼能做到這一點使用捲曲或我怎麼能做到這一點使用普通的PHP(無需額外的庫)
我需要使用PHP下載文件,然後將下載的文件上傳到用戶。然後下載然後上傳一個PHP文件
例如從test.com/test.zip
要麼
下載文件的文件緩存到磁盤或立即流式傳輸到用戶。
如果可能的話我怎麼能做到這一點使用捲曲或我怎麼能做到這一點使用普通的PHP(無需額外的庫)
使用echo(file_get_contents())會首先將文件加載到內存中,然後echo會將其輸出給用戶 - 因此在文件傳遞給用戶之前會有一段延遲,並且您有可能觸及PHP的內存限制。
與此相反,readfile()會在用戶從遠程源下載後立即向用戶提供塊,然後在收到它們時將其丟棄。它將使用更少的內存,並且下載將更快開始。
header('Content-Type: application/zip');
readfile('http://test.com/test.zip');
header("Content-Type: application/zip"); // correct? not sure.
echo(file_get_contents("http://test.com/test.zip"));
除非我錯過了你想要做的事...如果你想緩存它,你可以分開呼叫,並在某處存儲file_get_contents
的結果。這個調用的結果是文件作爲字符串。 echo
只是將其再次打印回瀏覽器。 header
用於告訴瀏覽器該文件實際上是一個zip文件,而不是html文件。
謝謝,這正是我所需要的,只要我測試它會標記爲完整 – RC1140 2009-09-08 06:00:17
從test.com執行的初始下載是否由運行在test.com上的PHP執行?由於PHP是服務器端的,它似乎非常適合處理運行它的服務器的下載。 「將下載的文件上傳到用戶」並不清楚你的意思。 – pavium 2009-09-08 05:40:09