홈페이지 게시판에 첨부된 파일을 다운로드 할때 상단에 소스가 존재하면 이를 공백으로 인식하여
txt형식 등의 파일 다운로드시 손상될수가 있습니다.
공백을 제거함으로써 해결 할 수 있는데
아래 굵게 빨간색으로 부분을 추가해주면됩니다.
<?php
ob_start();
if($mcfg_m_config_included != "YES") {
include $DOCUMENT_ROOT."/m_config/m_config.php";
}
//마일리지 삭제
if($wid != ""){
if($board_point_use == "y" && $minus_point != ""){
$now = mktime();
$contents = "파일다운";
$pquery = "insert into nxshop2_point values ('게시판', '$wid', '', '-', '$minus_point', '$contents', '$now', '1')";
$presult = mysql_query($pquery);
}
}
$len = filesize($file);
$filename = basename($file);
$file_extension = strtolower(substr(strrchr($filename,"."),1));
switch( $file_extension ) {
case "pdf": $ctype="application/pdf"; break;
case "exe": $ctype="application/octet-stream"; break;
case "zip": $ctype="application/zip"; break;
case "doc": $ctype="application/msword"; break;
case "xls": $ctype="application/vnd.ms-excel"; break;
case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
case "gif": $ctype="image/gif"; break;
case "png": $ctype="image/png"; break;
case "jpeg":
case "jpg": $ctype="image/jpg"; break;
case "mp3": $ctype="audio/mpeg"; break;
case "wav": $ctype="audio/x-wav"; break;
case "mpeg":
case "mpg":
case "mpe": $ctype="video/mpeg"; break;
case "mov": $ctype="video/quicktime"; break;
case "avi": $ctype="video/x-msvideo"; break;
case "php":$ctype="application/force-download";break;
case "htm":
case "hwp":$ctype="application/force-download";break;
case "html":
case 'txt' : $ctype = "text/plain"; break;
default: $ctype="application/force-download";
}
header("Content-type: ".$ctype."; name=\"".urlencode($filename)."\"");
header("Content-Disposition: attachment; filename=\"".urlencode($filename)."\"");
ob_end_clean();
readfile($file);
?>
파일명의 공백이야기가 아니라. 특정 형식의 파일 다운로드시 공백문제로 손상되는경우입니다.