php利用header函数下载各种文件
2018-09-07 21:39
本文实例为大家分享了php header函数下载文件实现代码,供大家参考,具体内容如下
<?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 shouldnt 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 (); } ?>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。