2016-06-19 2 views
1

Chrome에서 파일을 미리 보려고하지만 계속 다운로드 중입니다.ByteArrayContent 결과를 반환하는 HttpResponseMessage - Chrome에서 문서 미리보기

[HttpGet] 
    [ResponseType(typeof(ByteArrayContent))] 
    public HttpResponseMessage Download([FromUri] int uploadId) 
    { 
     try 
     { 
      Upload upload = UploadController.LoadByPrimaryKey(uploadId); 

      var path = upload.FullPath + "\\" + upload.UploadGuid + upload.Extension; 
      var mimeType = MimeTypeMap.GetMimeType(upload.Extension); 

      MemoryStream pdf = new MemoryStream(File.ReadAllBytes(path)); 
      HttpResponseMessage result = null; 
      result = Request.CreateResponse(HttpStatusCode.OK); 
      result.Content = new ByteArrayContent(pdf.ToArray()); 
      result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("inline"); 
      result.Content.Headers.ContentDisposition.FileName = upload.OriginalFileName; 
      result.Content.Headers.ContentType = new MediaTypeHeaderValue(mimeType); 

      return result; 
     } 
     catch (Exception ex) 
     { 
      //.. 
     } 
    } 

이것은 피들러의 흔적입니다.

HTTP/1.1 200 OK 
Cache-Control: no-cache 
Pragma: no-cache 
Content-Length: 793708 
Content-Type: application/pdf 
Expires: -1 
Server: Microsoft-IIS/10.0 
Access-Control-Allow-Origin: http://localhost:6701 
Access-Control-Allow-Credentials: true 
Content-Disposition: inline; filename="1451048-Customer Acceptance.pdf" 
X-AspNet-Version: 4.0.30319 
X-Powered-By: ASP.NET 
Date: Sun, 19 Jun 2016 10:52:35 GMT 
... 

나는 Open PDF file in browser rather than downloading pdf fileHow to force files to open in browser instead of download (pdf)?을 보았다하지만, 난 여전히 문제가 발생하고있다.

도움을 주시면 감사하겠습니다.

답변

1

코드에 문제가없는 것은 브라우저 설정에 문제가있는 것처럼 보입니다 (대부분의 브라우저에는 PDF 렌더링을위한 기본 설정이 있습니다).

하는

  1. 모질라

    에 시도하는 경우, 메뉴 버튼을 클릭하고 옵션을 선택합니다.
  2. 응용 프로그램 패널을 선택하십시오.
  3. 목록에서 PDF (Portable Document Format)를 찾아서 클릭하여 선택하십시오.
  4. 위의 항목에 대한 작업 열의 드롭 다운 화살표를 클릭하고 'Firefox에서 미리보기'를 선택하십시오.

참조 - https://support.mozilla.org/en-US/kb/disable-built-pdf-viewer-and-use-another-viewer

크롬

  1. 이동은 "옵션"
  2. 로 이동 (오른쪽에서 공구 모양 버튼 클릭)하는 경우 : 후드 아래를 -> 콘텐츠 설정 -> 플러그인
  3. "개별 플러그인 관리 ..."를 클릭하십시오.
  4. Adobe Acrobat 플러그인 (또는 다른 PDF 뷰어)을 찾아 내 API에서 동일한 코드를 가지고 그것이 나를 ContentDispositionHeaderValue (인라인 렌더링 및 첨부 파일 다운로드)를 기반으로 PDF 또는 다운로드를 렌더링 할 수 있습니다

    에서 응답 헤더 아래 참조가

활성화되어 있는지 확인 내 서버

HTTP/1.1 200 OK 
Cache-Control: private 
Content-Length: 46270 
Content-Type: application/pdf 
Server: Microsoft-IIS/10.0 
Content-Disposition: inline; filename=Sample.pdf 
X-AspNet-Version: 4.0.30319 
X-Powered-By: ASP.NET 
Date: Mon, 20 Jun 2016 03:38:39 GMT 

희망이

을하는 데 도움이