안녕하세요.
Autoset 10.7.0 버전의 웹서버(80), Mysql 을 사용하고 있습니다.
첨부파일 깨짐 방지 옵션을 비활성화 할 경우, 한글/영문 둘다 다운로드는 잘되나 파일이 깨져서
옵션을 활성화하면 영문은 다운로드가 잘되고 이상없으나, 한글은 다운로드시 Not Found뜹니다.
UTF-8 인코딩 문제 인거 같은데, 해당 옵션을 Dashboard에서 말고 소스에서 수정할 수 있을까요? UTF-8로 저장해보려고 합니다.
항상 감사합니다.
안녕하세요~^^
첨부파일이 깨지는 이유는 서버쪽 설정도 영향이 있는 듯합니다.
KBoard(케이보드) 쪽 관련 파일은 FTP로 접속해서 /wp-content/plugins/kboard/class/KBController.class.php 파일입니다.
fileDownload() 메소드쪽 코드 중 아래 코드를 살펴봐보세요.
if(get_option('kboard_attached_copy_download')){
$unique_dir = uniqid();
$upload_dir = wp_upload_dir();
$temp_path = $upload_dir['basedir'] . "{$ds}kboard_temp";
$file_handler = new KBFileHandler();
$file_handler->deleteWithOvertime($temp_path, 60);
$file_handler->mkPath("{$temp_path}{$ds}{$unique_dir}");
copy($file_info->full_path, "{$temp_path}{$ds}{$unique_dir}{$ds}{$file_info->file_name}");
header('Location: ' . $upload_dir['baseurl'] . "{$ds}kboard_temp{$ds}{$unique_dir}{$ds}{$file_info->file_name}");
}
else{
$ie = isset($_SERVER['HTTP_USER_AGENT']) && (strpos($_SERVER['HTTP_USER_AGENT'], 'Trident') !== false || strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false);
if($ie) $file_info->file_name = iconv('UTF-8', 'EUC-KR//IGNORE', $file_info->file_name);
header('Content-type: ' . $file_info->mime_type);
header('Content-Disposition: attachment; filename="' . $file_info->file_name . '"');
header('Content-Transfer-Encoding: binary');
header('Content-length: ' . $file_info->size);
header('Expires: 0');
if($ie){
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
}
else{
header('Pragma: no-cache');
}
$fp = fopen($file_info->full_path, 'rb');
fpassthru($fp);
fclose($fp);
}
고맙습니다.