js combiné avec php pour implémenter la fonction de téléchargement
Côté serveur
L'étape consiste à définissez les paramètres du fichier d'en-tête, puis lisez et extrayez le fichier. File_get_contents dans le code suivant peut être remplacé par fread et 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
Dans de nombreux cas, nous téléchargeons des fichiers en cliquant directement sur la page front-end Télécharger, plutôt que de passer spécifiquement au download.php ci-dessus pour le télécharger.
Nous devons donc implémenter un accès sans actualisation à download.php sur le front-end pour télécharger des fichiers. C'est un bon moyen d'y parvenir via une iframe cachée. Voici le code :
<!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 est d'abord lu puis renvoyé. Vous pouvez utiliser la fonction readfile à la place, qui est plus efficace.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!