nginx 파일 강제 다운로드 설정 방법

1492 단어
현재 브 라 우 저 는 많은 파일 형식 (txt, pdf, jpg...) 을 식별 하고 브 라 우 저 에서 자동 으로 열 수 있 습 니 다.
상황 1: 헤더 정보 추가 Content - Disposition "attachment;" 브 라 우 저 강제 다운로드:
 
  
#
Content-disposition: inline; filename=foobar.pdf
 
# ,
Content-disposition: attachment; filename=foobar.pdf

nginx 설정 은 다음 과 같 습 니 다. 해당 server 에 다음 location 을 추가 합 니 다.
 
  
location /upload {
    add_header Content-Disposition "attachment;";
}

상황 2:
이러한 요구 사항 이 있 습 니 다. 그림 파일 과 pdf 등 파일 링크 에 대해 실제 경로 에 접근 하면 브 라 우 저 에서 그림 을 열 수 없고 사용자 에 게 로 컬 에 저장 하 라 고 알려 줍 니 다. 파일 이름 은 방문 한 파일 이름 을 사용 합 니 다.이 문 제 는 주로 IE 로 인 한 것 입 니 다. mime 형식 이 무엇이든 간 에 인공 적 으로 그림 의 mime 형식 을 octet - stream 으로 설정 합 니 다. 브 라 우 저가 파일 접 두 사 를 알 면 브 라 우 저 에서 그림 을 엽 니 다. IE 브 라 우 저 는 쓰레기 같 죠?
해결 방안:
응답 하 는 http 헤더 에 추가: Content - Disposition: attachment;filename = 파일 이름 nginx 설정 은 다음 과 같 습 니 다.
 
  
        location ~ ^/somepath/(.*)$ {
            add_header Content-Disposition "attachment; filename=$1";
            alias "E:/apache-tomcat-7.0.32/webapps/upload/$1";
        }

정규 표현 식 을 사용 하여 요청 한 파일 이름 을 캡 처 합 니 다.또한 nginx 의 location 우선 순위 에 주의해 야 합 니 다. 먼저 =, 그 다음 ^ ~, 마지막 이 야 말로 ~ 입 니 다.이렇게 하면 IE 브 라 우 저 는 원 mime 형식 을 무시 하고 사용자 에 게 파일 을 로 컬 에 저장 하 라 고 알려 줍 니 다.

좋은 웹페이지 즐겨찾기