js php implements refresh-free download function

Guanhui
Release: 2023-04-08 15:40:02
Original
2735 people have browsed it

js php implements refresh-free download function

js combined with php to implement the download function

Server

The step is to set the header file parameters, then read in and output the file. File_get_contents in the following code can be replaced by fread and 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);
Copy after login

Client

In many cases, we download files by clicking directly on the front-end page Download, rather than specifically jumping to the download.php above to download.

So we need to implement refresh-free access to download.php on the front end to download files. It is a good way to achieve this through a hidden iframe. The following is the code:

<!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>
Copy after login

file_get_contents is read first and then echoed. You can use the readfile function instead, which is more efficient.

The above is the detailed content of js php implements refresh-free download function. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template