[팁]
크롬에서 한글파일명에 () 포함시 다운로드 파일명깨어질때 해결책
로빈아빠
본문
1. 크롬에서 한글파일명에 () 포함시 다운로드 파일명깨어질때 해결책
크롬에서는 한글파일명을 원래대로 출력해도 된다.
/bbs/download.php 에서 크롬일때 처리
if(preg_match("/Chrome/i", $_SERVER[HTTP_USER_AGENT]))
$original = htmlspecialchars($file[bf_source]);
@include_once("$board_skin_path/download.tail.skin.php");
if(preg_match("/msie/i", $_SERVER[HTTP_USER_AGENT]) && preg_match("/5\.5/", $_SERVER[HTTP_USER_AGENT])) {
header("content-type: doesn/matter");
header("content-length: ".filesize("$filepath"));
header("content-disposition: attachment; filename=\"$original\"");
header("content-transfer-encoding: binary");
} else {
header("content-type: file/unknown");
header("content-length: ".filesize("$filepath"));
header("content-disposition: attachment; filename=\"$original\"");
header("content-description: php generated data");
}
2. 화면보기에서 파일명에 인용표 ' 가 들어간경우 \' 로 표시되는것 수정
lib/common.php function get_file($bo_table, $wr_id) 에서
$file[$no][source] = addslashes($row[bf_source]);
로 되어서 그렇다. 원본을 고치는것보다는 view.skin.php 에서 수정하는게 좋다.
// 가변 파일
$cnt = 0;
for ($i=0; $i<count($view[file]); $i++) {
if ($view[file][$i][source] && !$view[file][$i][view]) {
$cnt++;
//원그누보드가 addslashes를 해버려서 다시 해제를 해야함
$view[file][$i][source] = htmlspecialchars(stripslashes($view[file][$i][source]));
echo "<tr><td height=30 background=\"$board_skin_path/img/view_dot.gif\">";
echo " <img src='{$board_skin_path}/img/icon_file.gif' align=absmiddle border='0'>";
echo "<a href=\"javascript:file_download('{$view[file][$i][href]}', '".urlencode(addslashes($view[file][$i][source]))."');\" title='".htmlspecialchars($view[file][$i][content])."'>";
echo " <span style=\"color:#888;\">".htmlspecialchars($view[file][$i][source])." ({$view[file][$i][size]})</span>";
echo " <span style=\"color:#ff6600; font-size:11px;\">[{$view[file][$i][download]}]</span>";
echo " <span style=\"color:#d3d3d3; font-size:11px;\">DATE : {$view[file][$i][datetime]}</span>";
echo "</a></td></tr>";
}
}
댓글목록
등록된 댓글이 없습니다.