Ajax 요청으로 파일 다운로드
Ajax를 사용하여 버튼 클릭 시 파일을 다운로드하는 기능을 구현하는 데 문제가 발생할 수 있습니다. 이러한 장애물을 극복할 수 있는 솔루션을 살펴보겠습니다.
초기 시도
이를 달성하기 위한 초기 시도에는 다음과 같이 XMLHttpRequest를 생성하고 GET 요청을 PHP 스크립트에 보내는 작업이 포함됩니다. 표시됨 아래:
javascript: var xhr = new XMLHttpRequest(); xhr.open("GET", "download.php"); xhr.send(); download.php: <? header("Cache-Control: public"); header("Content-Description: File Transfer"); header("Content-Disposition: attachment; filename= file.txt"); header("Content-Transfer-Encoding: binary"); readfile("file.txt"); ?>
제한 사항
그러나 이 방법은 브라우저 제약으로 인해 부족합니다. Ajax 요청은 다운로드 프롬프트를 직접 실행할 수 없습니다. 대신 파일을 탐색해야 파일을 탐색할 수 있습니다.
해결 방법
두 가지 접근 방식을 사용할 수 있습니다.
1. window.location 및 Fallback 사용
window.location 속성을 활용하여 다운로드 스크립트로 이동하여 다운로드를 트리거합니다.
$.ajax({ url: 'download.php', type: 'POST', success: function() { window.location = 'download.php'; } });
2. HTML5 다운로드 속성
최신 브라우저의 경우 HTML5 다운로드 속성을 사용할 수 있습니다.
<a href="download.php" download> Download File </a>
참고:
- 다운로드 속성은 Chrome, Firefox 및 이후 버전의 인터넷에서만 지원됩니다. Explorer.
- 다운로드할 파일이 호스트 페이지와 동일한 출처인지 확인하세요.
위 내용은 Ajax 요청으로 파일 다운로드를 어떻게 트리거할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!