js를 PHP와 결합하여 다운로드 기능을 구현합니다
server
단계는 헤더 파일 매개변수를 설정한 다음 파일을 읽고 출력하는 것입니다. 다음 코드의 File_get_contents는 fread 및 fclose로 대체될 수 있습니다.
download.php
<?php $filename = $_GET['filename']; $path = __DIR__."/file/".$filename; header( "Content-type: application/octet-stream"); header( "Accept-Ranges: bytes "); header( "Accept-Length: " .filesize($filename)); header( "Content-Disposition: attachment; filename={$filename}"); echo file_get_contents($filename);
Client
많은 경우, 파일을 다운로드할 때 위의 download.php로 특별히 이동하는 대신 클릭하여 프런트엔드 페이지에서 직접 다운로드합니다.
따라서 파일을 다운로드하려면 프런트 엔드에서 download.php에 대한 새로 고침 없이 액세스해야 합니다. 이는 숨겨진 iframe을 통해 이를 달성하는 좋은 방법입니다. 다음은 코드입니다.
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <a href="javascript:download_file('http://localhost/download.php?filename=\" rel="external nofollow" 测试文件.doc\"')">下载</a> <script type="text/javascript"> function download_file(url) { if (typeof (download_file.iframe) == "undefined") { var iframe = document.createElement("iframe"); download_file.iframe = iframe; document.body.appendChild(download_file.iframe); } //alert(download_file.iframe); download_file.iframe.src = url; download_file.iframe.style.display = "none"; } </script> </body> </html>
file_get_contents를 먼저 읽은 다음 에코합니다. 대신 readfile 함수를 사용할 수 있으며 이는 더 효율적입니다.
위 내용은 Node.js PHP는 새로 고침 없는 다운로드 기능을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!