05/13/2019 - No Comments!

파일 다운로드 header

헤더는이를 지 원하는 사 피를 사용 중일 때만 액세스할 수 있고 출력 됩니다. 언제나 처럼, 파일 다운로드에 대 한 적절 한 HTTP 헤더를 전송 하는 방법에 대 한 추가 정보로이 게시물의 내용에 기여할 수 있는 경우, 당신은 단지 생명을 구할 수 있습니다;) 그러나 이러한 경우에는 큰 파일을 다운로드 하 고 처리할 때 이러한 두 가지 방법 모두 다소 비효율적 이라는 것을 주의 해야 합니다. HTML5 파일 API 메서드 보다 base64 인코딩 방법에 대 한 더 많은. 분명히, 모든 브라우저에서 모든 파일 형식을 테스트 하지 않았다, 하지만 여기에 나열 된 것 들에서 긍정적인 결과 파일 및 작동 하는 브라우저의 훨씬 더 넓은 범위를 제안 합니다. 파일 크기에 대 한, 나는 작은 파일 길이의 몇 바이트를 테스트, 또한 주위에 큰 파일 20MB 정도. 또한 파이어 폭스에 대 한 라이브 HTTP 헤더 확장에 외침을 주고 싶습니다. 그것은 문제 해결/테스트/당겨 내 머리 아웃 과정에서 필수 불가결 한 입증. Lighttpd에 대 한 SendFile 헤더가 있습니다 (내가 제대로 쓴 경우 확실 하지 않음), 아파치는 mod_sendfile 파일 헤더를 사용할 수 있는 확장이 있다. 응답의 크기에 따라 브라우저는 HTML5 파일 Api를 지원 하기에 충분히 현대적인 지 여부, 우리는 base64 인코딩 또는 임시 파일을 사용 합니다. 내용-설명: 파일 전송은 또 다른 희망 찬 생각 헤더입니다. 다른 헤더와 조합의 수백을 시도 후, 나는 모든 테스트 브라우저에서 ZIP 다운로드 (및 기타 파일 형식 뿐만 아니라)에 대 한 좋은 작품 세트에 충돌.

다음은 PHP를 사용 하 여 다음과 같은 모양입니다. 두 개의 특별 한 경우 헤더 호출이 있습니다. 첫 번째는 문자열 "HTTP/"로 시작 하는 헤더가 며,이는 전송 하는 HTTP 상태 코드를 파악 하는 데 사용 됩니다. 예를 들어, 누락 된 파일에 대 한 요청을 처리 하기 위해 PHP 스크립트를 사용 하도록 아파치를 구성한 경우 (ErrorDocument 지시문을 사용 하 여), 스크립트가 적절 한 상태 코드를 생성 하는지 확인 하는 것이 좋다. "응용 프로그램/8 진수 스트림" 엔터티를 수신 하는 구현에 대 한 권장 된 작업은 단순히 브라우저를 통해 GET 요청을 만들 때 파일에 데이터를 넣어 제공 하는 것입니다., 그것은 완벽 하 게 작동. 나는 다운로드 대화 상자, 올바른 파일 이름, 모든 것을 보았다. 나는 모든 것을 했다! 두 번째 특수 한 경우는 "위치:" 헤더입니다. 이 헤더를 브라우저로 다시 보낼 뿐만 아니라 201 또는 3xx 상태 코드가 이미 설정 되어 있지 않은 경우 브라우저에 리디렉션 (302) 상태 코드가 반환 됩니다. 그러나 axios를 통해 GET 요청을 했을 때, 브라우저는 헤더와 콘텐츠-처리가 첨부로 설정 된 것을 보았지만, 다운로드 대화 상자는 그 일이 아니기 때문에 트리거되지 않았다. 이를 위해 몇 가지 http 응답 헤더를 설정 해야 합니다. 나는 이것을 아직 코딩 할 필요가 없지만 좋은 슬픔은 북마크를 얻는 것입니다. 나는이 날이 필요 합니다 돼지 저금통에 월스트리트를 내기 것입니다.

다운로드는 다음과 같은 유형의 파일 (소규모 및 대형 파일 형식 포함)에 대해 작동 합니다. 헤더 (` 다양 함: 허용 인코딩 `) 세션 기반 인증을 사용 하는 웹 사이트에서 파일을 다운로드 해야 하는 경우 해당 파일은 현재 로그인 한 사용자만 액세스할 수 있어야 하므로 웹 페이지에서 해당 작업 클라이언트 쪽은 매우 쉽습니다. 이는 세션 자격 증명이 일반적으로 쿠키 내에 저장 되 고 브라우저가 해당 도메인에 대 한 모든 HTTP 요청의 헤더에 쿠키를 자동으로 추가 하기 때문입니다. HTTP 요청에 헤더를 추가 하는 유일한 방법은 AJAX를 사용 하는 것입니다.

Published by: jeshurun

Comments are closed.