2012-11-16 25 views
0

我需要我的服務器下載一個文件並將其寫入服務器的文件系統。問題是我見過的所有PHP示例都將文件下載到服務器RAM中,然後寫入文件。在PHP中,服務器可以直接將文件下載到文件系統嗎?

因爲我正在處理大文件,所以我想讓PHP從其他服務器讀取文件,並立即將其讀取到本地文件中。

+0

爲什麼不使用FTP? – jtheman

+0

'file_put_contents('/ path/to/file',file_get_contents('http://example.com/file'));'? –

+0

您尚未共享與您相關的示例,但在本網站上,我們有質量保證材料,顯示如何不使用與總文件大小一樣大的RAM緩衝區。此外,PHP手冊中充滿了有關這方面的功能和示例。我真的很想知道你的方向是什麼。 http://php.net/filesystem – hakre

回答

4

使用curl這樣的:

<?php 
$url = 'http://www.example.com/a-large-file.zip'; 
$path = '/path/to/a-large-file.zip'; 

$fp = fopen($path, 'w'); 

$ch = curl_init($url); 
curl_setopt($ch, CURLOPT_FILE, $fp); 

$data = curl_exec($ch); 

curl_close($ch); 
fclose($fp); 
?> 
+1

。我不知道你可以這樣做。 –

+1

@RocketHazmat謝謝,我用它來處理大文件 - 在內存中下載數據會導致服務器性能下降和/或具有不可接受的內存需求 –

+0

好的招數@KamilŠrot – Ben

相關問題