질문:
AJAX를 통해 CSV 파일을 강제 다운로드하려면 어떻게 해야 하나요? PHP를 호출하시겠습니까?
배경:
사용자 입력을 기반으로 CSV 파일을 생성하는 AJAX 함수를 생성했습니다. 생성 후 사용자에게 메시지를 표시하지 않고 파일을 자동으로 다운로드하려고 합니다.
PHP 코드:
PHP 파일(csv.php)에서 다음을 시도했습니다. 다음 스크립트를 사용하여 CSV 파일을 강제로 다운로드합니다.
<code class="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; } echo "done";</code>
문제:
csv.php 끝에서 이 스크립트를 실행하면 파일이 다운로드되지 않고 페이지에 표시됩니다.
해결 방법:
AJAX를 사용하여 파일을 직접 다운로드할 수 없습니다. 파일을 강제로 다운로드하려면 다음 방법 중 하나를 사용할 수 있습니다.
예:
AJAX 기능을 다음과 같이 수정하여 다운로드 링크가 포함된 새 창을 표시할 수 있습니다.
<code class="javascript">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) { window.open(ajaxRequest.responseText); // Pop up a new window with the download link } } ajaxRequest.open("POST", "csv.php", false); ajaxRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); ajaxRequest.send(postdata); }</code>
위 내용은 PHP에서 AJAX를 통해 CSV 파일을 강제 다운로드하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!