본문 바로가기

[PHP] 한글파일 명 다운로드 방법

반응형
웹문서에서 어떠한 파일을 다운로드 할 경우
가장 간단한 방법은 A 태그에서 직접 경로를 지정해주면 된다.

허나... 이방법은 한글파일명을 가진 파일은 쓸수가 없다...ㅡㅡ^
원인은 문서자체의 인코딩, 서버설정 등 여러가지가 있겠다.

여기서는 내가 찾은 방법을 메모하는 수준...포스팅은 아니다.
내가 찾고, 수정한 방법이다.

다운로드를 호출할 페이지에서 onclick 으로 자바스크립트를 호출하고,
 
onclick="js_filedown('테스트.doc')"


자바스크립트에서는...

function js_filedown(filenm){
window.open('/bdes/down/download.php?filename='+filenm); return false;
}


그리고, 호출한 download.php 에서는

<? 

$Path=$filename; 
if (is_file($Path)) { 
Header("Content-type:application/octet-stream"); 
Header("Content-Length:".filesize($Path));    
Header("Content-Disposition:attachment;filename=".$filename); 
Header("Content-type:file/unknown"); 
Header("Content-Description:PHP3 Generated Data"); 
Header("Pragma: no-cache"); 
Header("Expires: 0"); 

$fp = fopen($Path, "rb");    
if (!fpassthru($fp)) fclose($fp); 
clearstatcache(); 
}else {
echo "<script> alert('해당 파일이나 경로가 존재하지 않습니다.'); </script>";
echo "<script> window.close(); </script>";
exit();
}

?>

이렇게 하면 일단 다운은 된다 ㅎㅎㅎ
무슨 오류가 있을지는 고려하진 않은 코드...ㅎㅎ

메모 완료~!! 
 
반응형