ajax 파일 다운로드

1) 페이지 계산만 ajax 호출에서 이루어집니다. 요소의 다운로드 속성은 IE 10 및 11에서 작동하지 않습니다. 대안은 Blob 및 msSaveBlob 및 msToBlob 메서드를 사용하여 로컬로 파일 저장을 참조하십시오. JPEG 이미지에 대한 httpbin.org 요청을 만들고 이전과 동일한 논리를 사용하여 이미지 데이터를 Blob에 로드하여 사용자 파일 시스템에 다운로드합니다. 실제로 ajax를 사용하지 않는 동안 자바 스크립트 호출을 사용하여 다운로드를 요청한 다음 다운로드가 실제로 시작될 때 콜백을 받을 수 있다는 수정 프로그램을 발견했습니다. 링크가 파일을 보내기 전에 파일을 작성하는 데 약간 걸리는 서버 측 스크립트를 실행하는 경우이 유용하다고 판단했습니다. 따라서 처리 중임을 경고한 다음 마지막으로 파일을 보내면 해당 처리 알림을 제거할 수 있습니다. 그래서 ajax를 통해 파일을로드하여 파일이 요청될 때 이벤트가 발생하고 실제로 다운로드를 시작할 때 다른 이벤트가 발생할 수 있도록하려고했습니다. 지원해야 하는 브라우저에 따라 iFRAME 메서드 jQuery 파일 다운로드보다 더 명시적으로 제어할 수 있는 https://github.com/eligrey/FileSaver.js/ 사용할 수 있습니다. 좋은 선생님 감사합니다! 이것은 내가 작업하고있는 반응 웹 앱에서 비 PDF 파일을 제공하는 데 엄청난 도움이되었습니다. Zip 파일 생성은 사용자가 하나의 패키지에서 여러 파일을 다운로드할 수 있도록 하는 더 좋은 방법입니다. 이는 파일 수와 크기에 따라 페이지 로드 시간에 영향을 줄 수 있습니다.

파일 API를 사용하면 브라우저에서 파일을 생성, 로드 및 조작할 수 있습니다. Blob을 사용하여 메모리 내 파일을 만들 수 있습니다: XMLHttpRequest 개체는 일반 AJAX 요청을 만드는 데 사용됩니다. 그러나 이진 파일을 다운로드할 때 요청 개체의 responseType 속성이 Blob으로 설정됩니다. 헤더: { `수락`: `응용 프로그램/vnd.ms-excel` } 다운로드 .xlsx 파일에 도움이 됩니다. 블루시스는 이것에 대해 완전히 맞습니다, 자바 스크립트는 (보안 문제에서) 사용자의 컴퓨터에 직접 파일을 저장할 수 없기 때문에 당신은 아약스를 통해 그것을 할 수 없습니다. 불행히도 파일 다운로드에서 기본 창의 URL을 가리키면 파일 다운로드가 발생할 때 사용자 환경을 거의 제어할 수 없습니다. 여기에서 xls (엑셀)를 다운로드하기 때문에 contentType을 하나 이상으로 조정했습니다. 파일 형식에 따라 설정해야 합니다. 이 기술을 사용하여 모든 종류의 파일을 다운로드할 수 있습니다. 일반적으로 클라이언트는 브라우저를 사용하여 서버에서 파일 다운로드를 처리합니다. 그러나이 방법은 새 브라우저 창, iframes 또는 기타 종류의 비우호적이고 해커 동작을 열어야합니다.

다운로드 요청에 추가 헤더 정보를 추가하는 것도 어렵습니다. 더 나은 해결책은 XMLHttpRequest 또는 요청 라이브러리와 함께 HTML5 파일 API를 사용하는 것입니다. “서버에 JSON 데이터를 게시하고 엑셀 파일을 받을 수 있습니다. 해당 Excel 파일은 서버에서 만들어지고 클라이언트에 대한 응답으로 반환됩니다. 브라우저에서 사용자 지정 이름으로 해당 응답을 다운로드” 다운로드를 위해 페이지 로드에 여러 zip 파일을 만들어야 할 때 더 많은 문제가 발생합니다. 나는 더 나은 사용자 경험을 제공하기 위해 OnSuccess 및 OnFailure 콜백으로 완성 된 파일 다운로드와 함께 “Ajax 와 같은”경험을 허용하는 jQuery 파일 다운로드를 만들었습니다. 플러그인이 해결하는 일반적인 문제와 그것을 사용하는 몇 가지 방법과 행동에 jQuery 파일 다운로드의 데모에 내 블로그 게시물을 살펴.