본문 바로가기
IT-개발,DB

[개발] 파일 다운로드 구현시 한글 깨지는 문제 해결법

by SB리치퍼슨 2010. 11. 4.


이번 내용은 팁이라고 하기에는 좀 그렇고 제가 한참 고생하다 방법을 찾아서 너무 기쁜 나머지 여기에 올리게 되었습니다. ^^;;

대단한건 아니고 닷넷에서 파일 다운로드 구현할때 파일명에 한글이 있으면 다운로드 창에서 파일명이 깨져서 나오는 현상 해결 방법 입니다.

일단 소스를 보시면 다들 이해 하시리라 생각됩니다.



public static void FileDownload(string sFileName)
{
try
{
//파일 저장 경로
string sBoardDataPath = ConfigUtil.GetUploadRootPath() + "\\NB_BoardData_001001";

string sTmpFilePath = sBoardDataPath.Trim() + "\\" + sFileName.Trim();

//헤더에 파일 이름 지정
Response.ClearHeaders();
Response.ClearContent();

Response.ContentType = "multipart/form-data";
Response.AddHeader
("Content-Disposition", "attachment;filename=" + Server.UrlPathEncode(sFileName));
Response.WriteFile (sTmpFilePath);
Response.Flush();
Response.Close();
}
catch(Exception E)
{
throw E;
}
}






위 소스는 내보드에서 사용하는 파일 다운로드 함수를 약간 수정한 것 입니다.


위 소스에서 UrlPathEncode 이 부분이 한글 파일명을 안깨지고 보여지도록 하는 부분 입니다.


어딜 찾아보니 UrlEncode로 하면 된다고 하던데 안되더군요.

UrlEncode과 UrlPathEncode에 대한 자세한 설명은 다음 MSDN 페이지를 참조하시면 됩니다.

UrlEncode 설명
UrlPathEncode 설명

벌써 다들 알고있는 내용이었다면 대략낭패 ;;
반응형

댓글