답변:
txt 확장자의 기본 유형은 text / plain입니다. 이 동작은 mime.types 파일에 설명되어 있습니다. http://nginx.org/en/docs/http/ngx_http_core_module.html#default_type 또는 http://nginx.org/en/docs/http/ngx_http_core_module.html#types 를 사용 하여 재정의하십시오 (application / octet로 설정 될 수 있음) -흐름).
변화 Content-Type
의 .txt
파일이 작동 할 수 있지만 사용자의 브라우저가 예상 어떻게 반응 할 100 % 보장 할 수 있기 때문에이 문제를 해결하기 위해 다소 위험한 방법입니다. 또한 .txt
파일을 이진 파일로 레이블링하는 것은 잘못된 것입니다 .
대신 파일을 표시하지 않고 브라우저를 강제로 다운로드하는 표준 방법을 사용하는 것이 좋습니다. Content-Disposition
이 값은 attachment
( RFC 2183 , RFC 2616 참조) 헤더 를 사용하는 것 입니다.
예를 들어,이 nginx location
블록은 URI .txt
아래에 파일이 있는 해당 헤더를 전송 /downloads/
하므로 다운로드해야합니다.
location ~ ^/downloads/.*\.txt$ {
add_header Content-Disposition "attachment";
}
따라서 구성에 적합한 다른 적절한 일치 등을 추가 할 수 있습니다.
Content-Disposition
크롬 브라우저의 해킹은 콘솔에 나쁜 단어를 말하고 페이지에서 파일 다운로드를 중지 할 수 있습니다. 그것은 다음과 같이 thinhgs (노란색 삼각형으로) 말합니다 :"Resource interpreted as Document but transferred with MIME type image/png:"
다운로드 가능한 파일의 위치를 추출하고 해당 컨텐츠 유형을로 설정해야합니다 application/octet-stream
.
다운로드 가능한 프로모션 자료 (pdf, 이미지 및 일부 문서 포함)에 대한 서비스 위치는 다음과 같습니다.하지만 txt 파일에서도 작동합니다.
location /promomaterial/download/ {
add_header Content-Type application/octet-stream;
}
우리가 시도한 모든 브라우저는 파일을 표시하지 않고이 위치에서 모든 파일을 다운로드합니다.