Heim >Backend-Entwicklung >PHP-Tutorial >js php implementiert die aktualisierungsfreie Download-Funktion

js php implementiert die aktualisierungsfreie Download-Funktion

Guanhui
GuanhuiOriginal
2020-05-02 17:52:552765Durchsuche

js php implementiert die aktualisierungsfreie Download-Funktion

js kombiniert mit PHP zur Implementierung der Download-Funktion

Serverseitig

Der Schritt besteht darin Legen Sie die Parameter der Header-Datei fest, lesen Sie dann die Datei ein und geben Sie sie aus. File_get_contents im folgenden Code kann durch fread und fclose ersetzt werden.

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

In vielen Fällen laden wir Dateien herunter, indem wir direkt auf die Frontend-Seite „Herunterladen“ klicken. anstatt speziell zur download.php oben zu springen, um sie herunterzuladen.

Daher müssen wir einen aktualisierungsfreien Zugriff auf download.php im Frontend implementieren, um Dateien herunterzuladen. Dies ist eine gute Möglichkeit, dies über einen versteckten Iframe zu erreichen. Das Folgende ist der 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>

file_get_contents wird zuerst gelesen und dann zurückgegeben. Sie können stattdessen die Funktion readfile verwenden, die effizienter ist.

Das obige ist der detaillierte Inhalt vonjs php implementiert die aktualisierungsfreie Download-Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn