CMS솔루션마켓, 이온디 - 워드프레스, 라이믹스, 카페24, 그누보드, 엑셀

포럼

Question.

// 파일 출력
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

위의 값을 대입해서 다운받으면 정상적인 파일이 다운로드 되지 않더라구요;;

외부 서버에서 다운받는 방법은 없나요??

Answer.

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());

?>