Nowadays, many sites provide statistical functions for downloading files. This article discusses how to use PHP to implement this function. This article also has certain reference value for programmers who want to hide the download file path and prevent users from directly using URL downloads. Implementation environment: Linux+Apache+Php+MysqlWindows98+PWS4+Php+Mysql 1. Database structure Create a table in the database to store file information, including file encoding, name, download path, and statistics. The corresponding sql file content is as follows :CREATE DATABASE dl_db;CREATE TABLE dl_file (id varchar(6), name varchar(50), url varchar(200), count bigint(10));INSERT INTO dl_file VALUES(000001, test, test.zip, 0); INSERT INTO dl_file VALUES(000002, tif, download/123.tif, 0); 2. PHP programming 1. Function file The function file includes the database connection initialization function and the prompt information display function. dl_func.php3: //初始化数据库连接的程序function dl_dbconnect(){ error_reporting(1+4); //禁掉warning性错误 $dl_in=0; $dl_in=mysql_connect("localhost:3306","root","123456"); if(!dl_in) { //如果连接失败,退出 echo "数据库无法连接"; exit; } mysql_select_db("dl_db",$dl_in); return $dl_in; } //显示提示信息的函数 function infopage($strInfo){ echo ""; }?> 2. Download connection page The download connection page reads the download file information from the database and displays it. filelist.php3:
File download
"; echo "$arr_dlfile[name]"; echo " "; echo "(Number of downloads: $arr_dlfile[count] )"; echo "
";}mysql_close($dl_in);?>3. Download page. When the file exists, the download page will go to the file to be downloaded. If an error occurs, a prompt will be displayed. Information. filedown.php3: require("dl_func.php3"); $dl_in=dl_dbconnect(); $strQuery="select url from dl_file where id=$id"; $dl_res=mysql_query($strQuery,$dl_in); if(!($arrfile=mysql_fetch_array($dl_res))){ //选择结果为空 infopage("错误的id号"); exit; }else{ $arr_temp=split("/",$arrfile[url]); $filename=$arr_temp[sizeof($arr_temp)-1]; if(strlen(trim($filename))==0){//文件名称为空 infopage("错误的文件"); exit; }else{ $strQuery="update dl_file set count=count+1 where id=$id"; mysql_query($strQuery,$dl_in); header("Content-type: application/file"); header("Content-Disposition: attachment; filename=$filename");//缺省时文件保存对话框中的文件名称 header("location:$arrfile[url]"); //echo “this is test for echo-download”; } } mysql_close($dl_in);?>The implementation principle is that filelist.php3 displays the connections of all files, and then obtains the name and path of the file based on the passed id, and downloads the file through relocation. The above program has been tested by the author and runs normally. . The file URL can be local or on another server. If the file content is stored in the database, or the file is not in the http or ftp path, the solution can be to echo the file content instead of header(" location:$arrfile[url]”), since the method of reading files is relatively simple, I won’t go into details here.
http://www.bkjia.com/PHPjc/532037.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/532037.htmlTechArticleMany sites now provide statistical functions for downloading files. This article discusses how to use php to implement this function. For Want to hide the download file path and prevent users from directly using the url to download...