Cet article présente principalement en détail le code de PHP utilisant la fonction d'en-tête pour télécharger divers fichiers.
Le contenu spécifique est le suivant
<?php /** * 下载文件 * header函数 * */ dl_file($_GET ['filename']); function dl_file($file) { $file = ".//images//" . $file; //First, see if the file exists if (! is_file ( $file )) { die ( "<b>404 File not found!</b>" ); } // Gather relevent info about file $len = filesize ( $file ); $filename = basename ( $file ); $file_extension = strtolower ( substr ( strrchr ( $filename, "." ), 1 ) ); // This will set the Content-Type to the appropriate setting for the file switch ($file_extension) { case "pdf" : $ctype = "application/pdf"; break; case "exe" : $ctype = "application/octet-stream"; break; case "zip" : $ctype = "application/zip"; break; case "doc" : $ctype = "application/msword"; break; case "xls" : $ctype = "application/vnd.ms-excel"; break; case "ppt" : $ctype = "application/vnd.ms-powerpoint"; break; case "gif" : $ctype = "image/gif"; break; case "png" : $ctype = "image/png"; break; case "jpeg" : case "jpg" : $ctype = "image/jpg"; break; case "mp3" : $ctype = "audio/mpeg"; break; case "wav" : $ctype = "audio/x-wav"; break; case "mpeg" : case "mpg" : case "mpe" : $ctype = "video/mpeg"; break; case "mov" : $ctype = "video/quicktime"; break; case "avi" : $ctype = "video/x-msvideo"; break; // The following are for extensions that shouldn't be downloaded // (sensitive stuff, like php files) case "php" : case "htm" : case "html" : case "txt" : die ( "<b>Cannot be used for " . $file_extension . " files!</b>" ); break; default : $ctype = "application/force-download"; } $file_temp = fopen ( $file, "r" ); // Begin writing headers header ( "Pragma: public" ); header ( "Expires: 0" ); header ( "Cache-Control: must-revalidate, post-check=0, pre-check=0" ); header ( "Cache-Control: public" ); header ( "Content-Description: File Transfer" ); // Use the switch-generated Content-Type header ( "Content-Type: $ctype" ); // Force the download $header = "Content-Disposition: attachment; filename=" . $filename . ";"; header ( $header ); header ( "Content-Transfer-Encoding: binary" ); header ( "Content-Length: " . $len ); //@readfile ( $file ); echo fread ( $file_temp, filesize ( $file ) ); fclose ( $file_temp ); exit (); } ?>
Résumé. : Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun.
Recommandations associées :
phpExplication détaillée du téléchargement de fichiers
php Mise en œuvre Fonction de table de hachage
php Explication graphique et textuelle détaillée du tri des données d'analyse non valides de session
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!