PHP에서 AJAX를 통해 파일을 다운로드하는 방법
PHP에서 AJAX 호출을 통해 파일을 다운로드하려면 기존 AJAX 방법을 넘어서는 창의적인 접근 방식이 필요합니다. 이 문제를 해결하는 방법은 다음과 같습니다.
파일 다운로드에 AJAX를 사용하는 대신 새 창을 열고 해당 주소를 다운로드 링크로 설정하는 것이 좋습니다. 이는 간단하고 효과적인 기술입니다.
또는 JavaScript의 document.location 속성을 사용하여 사용자의 브라우저를 다운로드 링크로 직접 리디렉션할 수 있습니다. 예는 다음과 같습니다.
function csv() { ajaxRequest = ajax(); postdata = "data=" + document.getElementById("id").value; ajaxRequest.onreadystatechange = function () { var ajaxDisplay = document.getElementById('ajaxDiv'); if (ajaxRequest.readyState == 4 && ajaxRequest.status == 200) { document.location = 'download.php?filename=' + ajaxRequest.responseText; } }; ajaxRequest.open("POST", "csv.php", false); ajaxRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); ajaxRequest.send(postdata); }
이 코드는 filename 매개변수에 지정된 파일을 다운로드하는 download.php라는 별도의 PHP 스크립트를 생성합니다.
download.php에서 다음을 사용합니다. 파일을 강제로 다운로드하는 코드 조각:
$fileName = 'file.csv'; $downloadFileName = 'newfile.csv'; if (file_exists($fileName)) { header('Content-Description: File Transfer'); header('Content-Type: text/csv'); header('Content-Disposition: attachment; filename='.$downloadFileName); ob_clean(); flush(); readfile($fileName); exit; }
위 내용은 AJAX와 PHP를 사용하여 파일을 효과적으로 다운로드하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!