2014-10-29 3 views
1

나는 EXTJS4.2 및 웹 개발에 익숙하지 만 학습하지만 혼동스러워하는 부분에 대한 통찰력이 필요합니다.EXTJS 4.2 - REST API를 통해 PDF 다운로드

내 AJAX 코드가 JSON 입력 매개 변수를 통해 POST REST API를 호출하여 PDF 파일을 다운로드합니다.

내 연구하는 동안

, 일부 사용자은 (는) PDF를 다운로드 AJAX를 사용할 수 없습니다 것을 나타낼 때, 다른 게시물 그래서

, IFRAME을 통해 PDF를 다운로드 형태 PARAMS을 제출하여 AJAX를 사용하는 것이 좋습니다, 나는 오전 나는 내가해야 할 일을 이해하지 못하기 때문에 조금 혼란 스럽다. 나는 운이없는 몇 가지 것을 시도했다.

누군가가 가능한 배경과 제공하지 않는 배경에 대해 설명하고 실제 달성 방법을 설명 할 수 있습니까? 응답 텍스트를 파일에 쓸 수 없습니까?

나는 모든 브라우저에서 작동하는 솔루션을 사용하려고합니다. 따라서 EXTJS가 들어 올려지게하십시오.

이 도움이 얼마나 확실하지, 그러나 이것은 당신이 아약스를 통해 파일을 다운로드 할 수 있지만 응답 콘텐츠 형식이

Transfer-Encoding: chunked 
Content-Type: application/pdf;charset=utf-8 
Content-Disposition: attachment;filename=1428140714.pdf 

답변

3

모습입니다은 브라우저가 있도록 저장 대화 상자 트리거하는 방법을 방법이 없습니다 다운로드 한 파일은 메모리에만 남아 있습니다.

다행히도 해결책은 간단합니다. target이 숨겨진 iframe 인 클라이언트로부터 요청을 게시합니다. 브라우저 저장 대화 상자가 나타나면 사용자가 저장할 위치를 선택할 수 있으며 파일이 저장됩니다. 나중에 iframe을 삭제할 수 있습니다.

현재 작업에서 볼 수 있습니다 http://extjs.eu/ext-examples/#downloading-file

+0

안녕 사키 응답을 주셔서 감사합니다, 나는 그것을 감사드립니다. 나는 당신의 예를 확인해 보았습니다, 정말로 미안하지만 나는 아직도 조금 혼란 스럽습니다. REST API는 application/json 헤더가있는 JSON 매개 변수 만 지원합니다. 나는 그걸 가지고 놀았지만 작동시키지 못했습니다. AJAX 요청을 사용합니까, 어떻게 타겟 파트가 이것에 들어 맞는지 조금 혼란 스럽습니다, 타겟이 성공 핸들러로 들어갈 수 있습니까? – user2574678

+0

Ajax를 통해 파일을 다운로드 할 수 없으므로 REST, JSON 및 프록시를 잊어 버릴 수 있습니다. 따라서 사이트 외부로의 이동을 방지하기 위해 양식 (제출할 항목, 요청 생성) 및 iframe을 대상으로 삼아야합니다. – Saki

+0

알겠습니다 ... 고맙습니다 ... – user2574678

관련 문제