크롬에서 다운받은 첨부파일에 특수문자가 있으면 %5B 식으로 나타납니다..

· 2012-09-13 (목) 17:33:21 · 9717 · 4
크롬과 쿨노보에서 나타나는 증상입니다..

첨부된 파일명에 특수문자가 있을때..
예를 들어서 '[추천]자료.pdf' 라는 파일을 다운받으면..
파일명이 '%5B추천%5D자료.pdf' 라고 나타납니다..

익스8 , 파폭에서는 이상이 없이 '[추천]자료.pdf' 라고 다운받아지는걸 보아..
DB에는 '[추천]자료.pdf' 로 정상적으로 저장이 되어 있는것 같은데..
크롬과 쿨노보에서는 특수문자가 왜 저렇게 나타날까요??

크롬과 쿨노보에서도 '[추천]자료.pdf' 로 다운로드 될수 있게 하실줄 아시는분 계신가요??
|

댓글 4개

2012-09-13 (목) 17:37:53
혹시 이 팁이 도움이 될지 모르겠네요.
http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=27986
2012-09-13 (목) 17:53:07
해당 답변은 공백에 관한 답변이라 그런지 적용이 안되네요..
특수문자는 여전히 %5B 같은 모양으로 나타납니다.. ㅠㅠ
2012-09-13 (목) 22:43:15
ecode 되서 나오는거 같네요ㅕ

urlencode , urldecode 함수 참고해보세요
2013-01-25 (금) 15:21:03
if (preg_match("/^utf/i", $g4[charset]))
//$original = urlencode($file[bf_source]);
$original = str_replace("+","%20", urlencode($file[bf_source])); // utf-8 첨부파일 공백 +로 되는 현상 해결위함
else
$original = $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");
}
header("pragma: no-cache");
header("expires: 0");
flush();
*/


// Must be fresh start
if( headers_sent() )
die('Headers Already Sent');

// Required for some browsers
if(ini_get('zlib.output_compression'))
ini_set('zlib.output_compression', 'Off');

// Parse Info / Get Extension
$fsize = filesize($filepath);
$path_parts = pathinfo($filepath);
$ext = strtolower($path_parts["extension"]);

// Determine Content Type
switch ($ext)
{
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;
default: $ctype="application/force-download";
}

header("Pragma: public"); // required
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false); // required for certain browsers
header("Content-Type: $ctype");
if(preg_match('/MSIE/i', $_SERVER['HTTP_USER_AGENT']) && !preg_match('/Opera/i', $_SERVER['HTTP_USER_AGENT'])) echo header("content-disposition: attachment; filename=\"".basename(rawurlencode($file['bf_source']))."\";");
else echo header("content-disposition: attachment; filename=\"".basename($file['bf_source'])."\";");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".$fsize);
ob_clean();
flush();




이렇게 하면 될지도 모르겟네요 ㅎㅎ...
댓글을 작성하시려면 로그인이 필요합니다.

그누4 질문답변

66,531건

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기 기존 게시물은 열람만 가능합니다.

+
제목 글쓴이 날짜 조회
12-09-13 조회 954
12-09-13 조회 885
12-09-13 조회 742
12-09-13 조회 1,072
12-09-13 조회 955
12-09-13 조회 1,055
12-09-13 조회 874
12-09-13 조회 1,745
12-09-13 조회 1,701
12-09-13 조회 9,718
12-09-13 조회 1,678
12-09-13 조회 1,641
12-09-13 조회 915
12-09-13 조회 1,063
12-09-13 조회 1,211
12-09-13 조회 1,638
12-09-13 조회 1,087
12-09-13 조회 1,853
12-09-13 조회 1,349
12-09-13 조회 1,067