Node.js PHP는 새로 고침 없는 다운로드 기능을 구현합니다.

Guanhui
풀어 주다: 2023-04-08 15:40:02
원래의
2723명이 탐색했습니다.

Node.js PHP는 새로 고침 없는 다운로드 기능을 구현합니다.

js를 PHP와 결합하여 다운로드 기능을 구현합니다

server

단계는 헤더 파일 매개변수를 설정한 다음 파일을 읽고 출력하는 것입니다. 다음 코드의 File_get_contents는 fread 및 fclose로 대체될 수 있습니다.

download.php

<?php
$filename = $_GET[&#39;filename&#39;];
$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(&#39;http://localhost/download.php?filename=\" rel="external nofollow" 测试文件.doc\"&#39;)">下载</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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿