HTML download속성

HTML download속성

온라인에서 찾은 PDF 파일을 보려고 합니다.

일반적으로 PDF 파일을 열려고 하면 Firefox는 해당 파일을 기본 PDF 뷰어(pdfjs라고 생각합니다)에 표시합니다. 이는 좋고 정상적인 행동입니다.

하지만...
온라인에서 찾은 이 특정 PDF를 사용하여 해당 위치에 대한 링크를 클릭하면 Firefox가 다운로드 대화 상자를 표시합니다. 파일이 기본적으로 다운로드하여 볼 수 있는 PDF임에도 불구하고 파일을 "바이너리 파일"로 설명합니다.

나는 웹 서버가 "말하지 않고" Firefox에서는 이 PDF 파일이 실제로는 PDF 파일이라고 생각합니다. 따라서 Firefox에서는 "바이너리 파일"이라고만 가정할 수 있습니다.

          이로 인해 질문이 궁금해졌습니다 ...

이런 짜증나는 일이 다시 발생한다면 파일을 다운로드하는 대신Firefox의 기본 PDF 뷰어에서 파일(온라인 또는 기타)을 열 수 있습니까?

시도한 솔루션:

  1. 나는 대답을 시도했다Firefox 내장 PDF 뷰어(pdf.js)를 수동으로 호출하는 방법은 무엇입니까?, 그러나 소용이 없습니다. Firefox는 "바이너리 파일"을 다운로드하려고 시도합니다.
  2. view-source:PDF 위치의 시작 부분(예 : )을 추가하면 view-source:https://www.website.com/pdf.pdfPDF 파일의 원시 ASCII 텍스트가 표시됩니다.

추신: 저는 Firefox 48.0.2를 사용하고 있습니다.
예, 오래되었습니다....


요청대로:

응답 및 요청 헤더 스크린샷

답변1

사이트에서 브라우저가 파일을 직접 열지 않고 강제로 파일을 다운로드하도록 할 수 있는 방법에는 여러 가지가 있습니다.

HTML download속성

태그 의 이 속성은 anchor브라우저가 일반적인 방식으로 파일을 처리하는 대신 파일을 다운로드하도록 시도합니다.

일반적으로 이는 자동으로 생성된 문서 이름을 가져와 사용자에게 좋은 이름으로 표시해야 할 때 사용됩니다.

용법:<a href="http://www.website.com/path/to/YourDocument.pdf" download="YourDocument.pdf">...

아직 이 문제를 해결할 수 있는 방법을 찾지 못했지만 문제의 실제 원인은 아래에 있기 때문에 완전히 조사하지는 않았습니다...

HTTP 헤더

Content-Disposition

Content-Disposition웹 서버는 브라우저가 파일을 수신하는 방법을 설명하는 헤더 가 있는 문서 요청에 응답할 수 있습니다 .

Content-Disposition: Attachment브라우저는 평소처럼 파일을 처리하지 않고 파일을 다운로드해야 한다고 브라우저에 알립니다.

Content-Disposition: Inline웹페이지 내부에 표시되거나 웹페이지로 표시될 수 있음을 브라우저에 알려줍니다.

Attachment다음은 헤더를 가져와 헤더로 대체하는 Firefox 애드온입니다 Inline.

https://addons.mozilla.org/en-US/firefox/addon/bypass-forced-download/

기술적으로 Content-Disposition: attachment헤더를 가로채서 즉석에서 Content-Disposition: inline. 또한 이 재작성을 사용해야 할 웹사이트와 사용하지 말아야 할 웹사이트를 지정할 수도 있습니다.

대부분의 애드온과 마찬가지로 마일리지가 다를 수 있습니다.

Content-Type

Content-Type웹 서버는 브라우저에 반환되는 문서 유형을 설명하는 헤더 가 있는 문서 요청에 응답할 수 있습니다 .

Content-Type: application/octet-stream"임의의 바이너리 데이터"로 정의되며 기본적으로 파일로만 다운로드할 수 있습니다. 그렇지 않으면 브라우저는 이를 어떻게 처리할지 알 수 없습니다.

이는 보려고 하는 PDF 파일을 브라우저에서 요청할 때 표시되는 내용입니다.

Content-Type: application/pdf이 파일을 브라우저에서 보거나 최소한 Firefox가 파일이 무엇인지, 올바르게 처리하는 방법을 이해하도록 하려면 필요할 것입니다.

Content-Type다음은 콘텐츠를 기반으로 헤더를 수신하고 다시 작성하도록 설정할 수 있는 Firefox 애드온입니다 .

메모: 브라우저가 MIME 유형을 처리하는 방식을 수정하는 것은 위험할 수 있습니다.

https://addons.mozilla.org/en-US/firefox/addon/content-type-fixer/

다시 말하지만, 이 애드온은 모든 경우에 작동할 수도 있고 작동하지 않을 수도 있습니다.

관련 정보