PHP 파일 다운로드 처리 방법
헤더에 아래 같은것만 넣어준다음 화면에 출력해주면 됩니다.
반드시 파일다운로드 처리 할때는 파일이 있는지 확인하고. 파일 사이즈에 대한 정보를 같이 넣어 주는것이 좋습니다. 그리고 어떤 파일 타입인지 알려줘야 합니다. 그렇지 않으면 확장자로 판단하기도 하는데 우리가 일반 html의 경우 content-type이 html 이기 때문에 화면에 보이는것 처럼 xls 파일이면 이에 맞는것을 찾아서 넣어주면 좋습니다. 일반 바이너리 파일의 경우 아무것도 넣지 않으면 그냥 다운로드 됩니다.
웹브라우저로 아래와 같이 해주면 됩니다.
프로그램의 주석을 보시면 됩니다. 링크는 "건설업 업무협조전" 이라는 제목으로 파라미터로 수정 가능하게 되어 있습니다.
# 다운로드 받을 파일
$file = $_SERVER['DOCUMENT_ROOT'] . '/blog/pabburi_util/업무협조전.pdf';
$filesize = 0;
#
if ( file_exists($file) ) {
$filesize = filesize($file);
}
else {
echo "파일이 업습니다. " . "\n";
exit;
}
# 공통으로 사용되는 헤더
header("Content-type: application/pdf; charset=utf-8");
header("Content-Transfer-Encoding: binary");
header("Content-Length: $filesize");
header("Cache-Control: cache,must-revalidate");
header("Pragma: no-cache");
header("Expires: 0");
#
# 파일로 다운로드 받아 진다.
if ( $_GET['file'] == 1 )
{
// $dwFileName = '건설업 업무협조전.pdf';
$dwFileName = urldecode($_GET['fNm']);
header("Content-Disposition: attachment; filename=\"$dwFileName\"");
}
else
{
}
echo file_get_contents($file);
위 확인용 다운로드 주소는 아래와 같습니다.
https://www.pabburi.co.kr/blog/pabburi_util/dw.php?file=1&fNm=%EA%B1%B4%EC%84%A4%EC%97%85+%EC%97%85%EB%AC%B4%ED%98%91%EC%A1%B0%EC%A0%84.pdf