파일을 다운로드하여 서버의 파일 시스템에 기록하려면 내 서버가 필요합니다. 문제는 필자가 본 모든 PHP 예제가 파일을 서버 RAM에 다운로드 한 다음 파일에 쓰는 것입니다.PHP에서는 서버가 파일 시스템에 직접 파일을 다운로드 할 수있는 방법이 있습니까?
큰 파일을 다루기 때문에 PHP가 다른 서버에서 파일을 읽고 즉시 읽는 파일을 로컬 파일에 쓰길 원합니다. 이 같은
파일을 다운로드하여 서버의 파일 시스템에 기록하려면 내 서버가 필요합니다. 문제는 필자가 본 모든 PHP 예제가 파일을 서버 RAM에 다운로드 한 다음 파일에 쓰는 것입니다.PHP에서는 서버가 파일 시스템에 직접 파일을 다운로드 할 수있는 방법이 있습니까?
큰 파일을 다루기 때문에 PHP가 다른 서버에서 파일을 읽고 즉시 읽는 파일을 로컬 파일에 쓰길 원합니다. 이 같은
사용 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에 대한 'CURLOPT_FILE'. 네가 할 수 있다는 것을 나는 몰랐다. –
@RocketHazmat 감사합니다. 거대한 파일에 사용합니다. 메모리에서 데이터를 다운로드하면 서버 성능이 저하되거나 메모리 요구 사항이 용납되지 않습니다. –
좋은 트릭 @ KamilŠrot – Ben
왜 FTP를 사용하지? – jtheman
'file_put_contents ('/ path/to/file', file_get_contents ('http://example.com/file')); –
당신이 관련 예제를 공유하지 않았지만,이 웹 사이트에는 총 파일 크기만큼의 RAM 버퍼를 사용하지 않는 방법을 보여주는 QA 자료가 있습니다. 또한 PHP 매뉴얼은 그에 대한 함수와 예제로 가득 차 있습니다. 나는 당신의 방식으로 서있는 것이 무엇인지 궁금합니다. http://php.net/filesystem – hakre