// 파일 출력
if(strstr($_SERVER['HTTP_USER_AGENT'], "MSIE")) {
$filename = rawurlencode($filename);
$filename = preg_replace('/\./', '%2e', $filename, substr_count($filename, '.') - 1);
}
$fp = fopen($uploaded_filename, 'rb');
header("Cache-Control: ");
header("Pragma: ");
header("Content-Type: application/octet-stream");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Content-Length: " .(string)($file_size));
header('Content-Disposition: attachment; filename="'.$filename.'"');
header("Content-Transfer-Encoding: binary\n");
fpassthru($fp);
파일을 외부서버에서 다운받으려고 합니다
파일은 XpressEngine에서 첨부한 파일이며 바이너리 형식으로 저장되어있습니다.
$uploaded_filename
http://wooams.dothome.co.kr/xe/files/attach/binaries/51/052/c458028498cc03ca4a3350c583fd3105
$filename
putty2.exe
$file_size
454656
위의 값을 대입해서 다운받으면 정상적인 파일이 다운로드 되지 않더라구요;;
외부 서버에서 다운받는 방법은 없나요??
cURL을 이용한 파일 다운로드 예제입니다.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<?php
$uploaded_filename = 'http://url/c458028498cc03ca4a3350c583fd3105';
$filename = 'putty2.exe';
$file_size = 454656;
ob_start();
$ch = curl_init();
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch,CURLOPT_URL,$uploaded_filename);
curl_exec($ch);
curl_close($ch);
file_put_contents('./'.$filename,ob_get_clean());
?>