Microsoft MVP성태의 닷넷 이야기
첨부 파일 Download시 한글 Name [링크 복사], [링크+제목 복사],
조회: 23395
글쓴 사람
장근배
홈페이지
첨부 파일
 

안녕하세요,,
여기에 질문을 해도 되는지 모르겠지만 일단 질문을 해 봅니다. ^^;

다름이 아니라 ASPX.NET(2.0)으로 게시판 비슷하게 구성을 하여 Service를 하고 있는데,
첨부 파일을 Download를 하게 되면 file Name이 깨져 나옵니다.
파일을 open, 저장, 취소창에서는 파일 Name이 정상적으로 나오나
해당 파일을 Open을 하게 되면 파일 Name에 '%'가 들어가 있어 이를
저장시 file Name을 다 수정을 해 줘야 합니다.
(저장을 하면 정상적으로 file Name으로 저장이 됩니다)
예를 들어 엑셀 파일 '강아지 List.xls'라고 하면
Open을 하면 Excel의 file Name이 '%ea%b0%95%ec%95%84%ec%a7%80+List.xls' 라고 Display됩니다.
파일을 실제로 download하는 부분은 다음과 같습니다.

Test_FileDown.aspx code
====================================================================================
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Test_FileDown.aspx.cs" Inherits="Web_Test.Test_FileDown" %>
=====================================================================================

Test_FileDown.aspx.cs code
====================================================================================
protected void Page_Load(object sender, EventArgs e)
{            
    string _fileName = string.Empty;
    string _filePath = string.Empty;

    int fileNamePoint = 0;
    try
    {
        _filePath = Server.UrlEncode(@"C:\temp\강아지 List.xls");
        _fileName = Server.UrlEncode(@"강아지 List.xls");

        if (null != _filePath && string.Empty != _filePath)
        {
            _filePath = Server.UrlDecode(_filePath);

            if (null == _fileName)
            {
                fileNamePoint = _filePath.Split('\\').Length;
                _fileName = _filePath.Split('\\')[fileNamePoint - 1];
            }
            else
            {
                _fileName = Server.UrlDecode(_fileName);
            }                

            Response.Clear();
            Response.ContentType = "application/Unknown";                    
            Response.AddHeader("Content-Disposition", "attachment;filename=\"" + Server.UrlPathEncode(_fileName).Replace("+", "%20") + "\"");                    
            Response.WriteFile(_filePath);
            Response.Flush();                    
        }
        Response.End();
    }
    catch (Exception ex)
    {
        Response.Clear();
        Response.Write("<script language='javascript'> " +
            " alert('첨부 파일을 다운로드중 오류가 발생하였습니다!'); " +
            " opener = self; " +
            " self.close(); " +
            "</script>");
        Response.End();
    }
}
====================================================================================

web.config code
==================================================================
<globalization requestEncoding="utf-8" responseEncoding="utf-8"/>
==================================================================

인터넷에서 검색을 해 보아도 결과는 --;;
방법이 있을까요??








[최초 등록일: ]
[최종 수정일: 11/30/2009]


비밀번호

댓글 작성자
 



2009-12-02 10시33분
글쎄요. 제가 보기에도 별로 문제될 것이 없어보이는데요. 제 파일 다운로드 코드 역시 위와 별반 다르지 않습니다. 예를 들어, 이 게시판의 834번 글에 첨부된 파일을 다운로드 받아보세요. (그 파일명이 한글입니다.)

참고로, 제 게시판의 소스 코드는 다음과 같습니다.

Response.Clear();
      Response.ContentType = FileExtension.GetContentType(orgFileName); // "application/octet-stream"
      string encodedFilename = HttpContext.Current.Server.UrlEncode(orgFileName); // orgFileName = "테스트"
      Response.AddHeader("Content-Disposition", "attachment; filename=" + encodedFilename);

      Response.TransmitFile(fullPath);

      Response.End();
kevin25
2011-06-24 05시42분
Response.AddHeader("content-disposition"........Unicode...
; http://forums.asp.net/t/1332340.aspx/1

따라서, 아래와 같이 처리해 보십시오. ^^

string txt = HttpUtility.UrlEncode(fileItem.FileName, System.Text.Encoding.UTF8);
정성태

... 31  [32]  33  34  35  36  37  38  39  40  41  42  43  44  45  ...
NoWriterDateCnt.TitleFile(s)
5113하주형1/20/201916795안녕하세요 시작하세요 C# 인코딩관련 질문드립니다. [1]
5112손성배1/19/201926033안녕하세요 cp949 인스톨시 오류입니다... 너무 힘들어요 [5]
5111게스트1/10/201917201암호화 라이센스 관련 문의 드립니다. [1]
5110WPF꿈...1/9/201916502Thread Abort 함수 사용시 [2]
5109닷넷개발1/9/201915972thread 관련 질문 예제.. [2]파일 다운로드1
5108닷넷개발1/9/201917247thread 관련 질문 드립니다.. [4]
5107우코아1/4/201920636WPF에서 로딩중 이미지를 구현 - Project [5]파일 다운로드1
5106우코아1/3/201917625WPF에서 로딩중 이미지를 구현 - Source [1]
5104우코아1/1/201919758WPF에서 로딩중 이미지를 구현 [4]
5103이혜성12/31/20181996032bit .net 으로 만들어진 dll파일 [5]
5102돌고래12/18/201818487자료구조와 알고리즘 도서 관련 질문입니다. [4]
5101세퉁12/17/201816742안녕하세요 wpf 공부중인데 질문있습니다. [4]파일 다운로드1
5100돌고래12/16/201816161도서 추천 부탁드립니다. [1]
5099WPF12/12/201818893안녕하세요. WPF에서 UWP Control을 참조하려고 합니다. [3]파일 다운로드1
5097sdh12/10/201819956[c#] 라이선스 파일 만들기 질문 드립니다. [3]
5096거북이12/3/201814993프로젝트 구성을 참고할 만한 자료가 있을까요? [1]
5095한대현11/21/201815066안녕하세요 c# 설치 파일 빌드중 오류가 생겨서 문의 드려요 [1]파일 다운로드2
5094하주형11/20/201815161안녕하세요 C# using 예약어관련 질문드립니다. [1]
5093Medi...11/19/201818976안녕하세요. wpf Mediaelement 질문 있습니다. [3]
5092하주형11/17/201815166안녕하세요 c# 7.1책 스택관련 질문드립니다. [2]
5091아짱11/15/201817586UWP 개발중 질문이 있습니다. [3]
5090황윤하11/15/201821856c# Socket Server에 접근할 수 있는 client 개수 제한 [5]
5089문성운11/14/201819283uwp에서 TcpListener를 사용할 수 없나요? [5]
5088안중언11/10/201816089TCP 소켓 [1]파일 다운로드1
5084김광흠11/9/201818534사운드 파일 "filename.wav" 와 같은 특정 파일이 실행되는것을 감시하고 싶습니다. [3]
5083거북이11/4/201819270타입의 범위를 넘어서는 연산의 개념을 모르겠습니다. [4]
... 31  [32]  33  34  35  36  37  38  39  40  41  42  43  44  45  ...