2014-03-12 1 views
0

나는 Asp.net을 사용하여 웹 사이트를 만들었습니다. 내 프로그램의 섹션에서 사용자는 가변 파일을 다운로드해야합니다. (Jpeg, Pdf, doc, docx ...) 다운로드 버튼을 누르고 "저장"버튼 대신 "열기"버튼을 누르면 Adobe Acrobat과 함께 파일이 열립니다. 문제는 단어 파일 인 경우 다시 Adobe Acrobat으로 열립니다! 어떻게 이것을 피하고 각 파일을 자신의 프로그램으로 열 수 있습니까?링크 버튼으로 자신의 프로그램으로 파일을 여는 방법

protected void LinkButton1_Command(object sender, CommandEventArgs e) 
    { 
     int idx = Convert.ToInt32(e.CommandArgument); 
     string Manuscript = GridView2.DataKeys[idx].Value.ToString(); 

     string fileName = System.IO.Path.GetFileName(Manuscript); 

     Response.Clear(); 
     Response.ContentType = "application/pdf"; 
     Response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName); 
     Response.TransmitFile(Server.MapPath(Manuscript)); 
     Response.End(); 
    } 

답변

1

:

string ext = System.IO.Path.GetExtension(this.File1.PostedFile.FileName); 
string contenttype = String.Empty; 

또는

string ext = Path.GetExtension(filename); 

switch(ext) 
{ 
    case ".doc": 
     contenttype = "application/vnd.ms-word"; 
     break; 
    case ".docx": 
     contenttype = "application/vnd.ms-word"; 
     break; 
    case ".xls": 
     contenttype = "application/vnd.ms-excel"; 
     break; 
    case ".xlsx": 
     contenttype = "application/vnd.ms-excel"; 
     break; 
    case ".jpg": 
     contenttype = "image/jpg"; 
     break; 
    case ".png": 
     contenttype = "image/png"; 
     break; 
    case ".gif": 
     contenttype = "image/gif"; 
     break; 
    case ".pdf": 
     contenttype = "application/pdf"; 
     break; 
} 
+0

감사합니다. contenttype은에서 지원되지 않습니다. 내 대구! 이름 공간이 필요합니까? – Reza

+1

@SaeedTalaee 그것은 데칼레이션해야하는 문자열 유형입니다. –

+0

이 링크 확인 : http://www.aspsnippets.com/Articles/How-to-save-insert-Image-in-Database-in-ASPNet-using-C-and-VBNet.aspx –

1

사용이처럼

FileInfo fInfo = new FileInfo(fileName); 
string fileExtn = fInfo.Extension; 
+0

감사의 이름 공간은 무엇 내 뒤에 대구에서이 대구를 사용 FileInfo? – Reza

+1

반갑습니다. 그것의'System.IO'. http://msdn.microsoft.com/en-us/library/system.io.fileinfo(v=vs.110).aspx를 확인하십시오. 내 대답이 도움이된다면 upvote하고 동의하십시오. – MusicLovingIndianGirl

+1

네임 스페이스에 대해 걱정할 필요가 없습니다. FileInfo와 Visual Studio의 네임 스페이스 붙여 넣기 코드를 붙여 넣으면 appropraite 네임 스페이스가 제안됩니다. 클릭하면 자동으로 추가됩니다. –

관련 문제