2016-08-20 1 views
0

ASP.NET MVC 4 응용 프로그램은 파일을 데이터베이스에 저장하고 다운로드 할 수 있습니다.자동 열기로 파일 형식을 다운로드하는 방법

포스트 그레스 테이블 dokumarh 두 개의 열

바이너리 데이터로
  • 내용 bytea와 파일 내용을 사용하여 게시 된 파일의
    • 파일 이름 텍스트 이름이 있습니다.

    응용 프로그램은 브라우저에서 파일을 다운로드 할 수 있습니다. 다운로드 한 파일은 해당 확장 프로그램의 기본 OS 응용 프로그램을 열어야합니다. 단어 예, 문서, 엑셀 XLS, 메모장 TXT 등

    이 기능

    제어기를 사용하여 구현된다

     public FileStreamResult ShowDocument(string filename) 
         { 
          var manus = Db.QuerySingle(@" 
    select filename, content 
    from dokumarh 
    where [email protected] 
    ", filename); 
          return new FileStreamResult(new MemoryStream(manus.content), "???") 
          { 
           FileDownloadName = manus.filename 
          }; 
         } 
    

    MVC의 filestreamresult로 표시된 전송 파라미터 및 컨텐츠 유형을 요구한다 "??"

    업로드하는 동안 파일 이름 만 사용할 수 있습니다. 콘텐츠 유형이 없습니다.

    적절한 콘텐츠 유형을 어떻게 지정할 수 있습니까? 또는 내용 유형을 지정하지 않고 파일 이름 만 반환 할 수 있습니까? 또는 파일 확장자에서 컨텐츠 유형을 찾을 수있는 MVC 메소드, 데이터베이스 또는 라이브러리가 있습니까?

  • +1

    당신은 [MimeMapping] 사용할 수 있습니다 (https://msdn.microsoft.com/en-us/library을 포함 /system.web.mimemapping.aspx) class –

    +0

    아! 나는 그것에 대해 결코 알지 못했다. 감사합니다 – Shyju

    +0

    @StephenMuecke이 문제를 해결합니다. 당신은 대답으로 썼을 수 있으므로 마크하고 upvote 수 있습니다. – Andrus

    답변

    1

    System.Web.MimeMapping의 정적 GetMimeMapping() 메서드를 사용하여 파일 이름에 대한 MIME 매핑을 반환 할 수 있습니다. 이 클래스는 모든 알려진 확장과 관련 MIME 타입

    예를 들어

    을 포함하는 개인 사전

    string fileName = "myfile.pdf"; 
    string MineType = MimeMapping.GetMimeMapping(fileName); // returns "application/pdf" 
    
    관련 문제