[PHP] curl을 이용한 원격지 파일 다운로드
php의 curl을 이용해 원격지의 파일을 브라우저에서 다운로드 하는 코드이다. 원격지 파일의 주소를 노출하지 않고 다운로드 할 수 있을 듯 한데.. 뭐 찾으려고 들면 찾는 방법도 있겠으나.. ㅎㅎ
<?php
$file_url = 'http://abc.com/test.zip';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_exec ($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if($http_code == 200) {
// 파일 다운로드
$filename = 'test.zip';
header("Content-Disposition: attachment; filename=$filename");
header("Content-type: application/octet-stream");
header("Content-Transfer-Encoding: binary");
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_URL, $url);
$file = curl_exec ($ch);
curl_close($ch);
} else {
die('파일이 존재하지 않습니다.');
}
?>
원격지에 파일이 실제로 존재하는지를 먼저 체크해서 존재할 때만 다운로드 되도록 했다.