2012-11-16 2 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 버퍼를 사용하지 않는 방법을 보여주는 QA 자료가 있습니다. 또한 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에 대한 'CURLOPT_FILE'. 네가 할 수 있다는 것을 나는 몰랐다. –

+1

@RocketHazmat 감사합니다. 거대한 파일에 사용합니다. 메모리에서 데이터를 다운로드하면 서버 성능이 저하되거나 메모리 요구 사항이 용납되지 않습니다. –

+0

좋은 트릭 @ KamilŠrot – Ben

관련 문제