亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Pembangunan PHP dan pelaksanaan modul fungsi statistik kiraan muat turun (2)

Buat fail download.php untuk membalas tindakan muat turun, kemas kini bilangan muat turun fail yang sepadan dan lengkapkan muat turun melalui penyemak imbas.

Menurut parameter url, pertanyaan untuk mendapatkan data yang sepadan, semak sama ada fail yang hendak dimuat turun wujud, jika wujud, kemas kini nombor muat turun data yang sepadan +1, bilangan muat turun fail dalam pangkalan data +1, dan gunakan pengepala () melaksanakan fungsi muat turun. Jika fail tidak wujud, "Fail tidak wujud!"

Perlu dinyatakan bahawa fungsi header() digunakan untuk memaksa fail dimuat turun, dan nama fail boleh ditetapkan untuk disimpan secara setempat selepas memuat turun.

Secara amnya, kami menggunakan program muat naik latar belakang untuk menamakan semula fail yang dimuat naik dan menyimpannya ke pelayan Fail yang biasa digunakan dinamakan mengikut tarikh dan masa Nama Cina bercelaru. Untuk fail yang kami muat turun secara setempat, kami boleh menggunakan header("Content-Disposition: attachment; filename=" .$filename) untuk menetapkan nama fail kepada nama fail yang mudah dikenal pasti.

<?php
require('conn.php');
$id = (int)$_GET['id'];

if(!isset($id) || $id==0) die('參數(shù)錯(cuò)誤!');
$query = mysqli_query($link,"select * from downloads where id='$id'");
$row = mysqli_fetch_array($query);
if(!$row) exit;
$filename = iconv('UTF-8','GBK',$row['filename']);//中文名稱注意轉(zhuǎn)換編碼
$savename = $row['savename']; //實(shí)際在服務(wù)器上的保存名稱
$myfile = 'files/'.$savename;  //文件名稱
if(file_exists($myfile)){
   mysqli_query($link,"update downloads set downloads=downloads+1 where id='$id'");
   $file = @fopen($myfile, "r"); 
   header("Content-type: application/octet-stream");
   header("Content-Disposition: attachment; filename=" .$filename );
   while (!feof($file)) {
      echo fread($file, 50000);  //打開(kāi)文件最大字節(jié)數(shù)為50000
   }
   fclose($file);
   exit;
}else{
   echo '文件不存在!';
}
?>

Nota:

Pustaka fungsi iconv boleh melengkapkan penukaran antara pelbagai set aksara dan merupakan perpustakaan fungsi asas yang sangat diperlukan dalam pengaturcaraan PHP.

file_exists() Fungsi menyemak sama ada fail atau direktori wujud. Mengembalikan benar jika fail atau direktori yang dinyatakan wujud, sebaliknya palsu. Fungsi

fopen() membuka fail atau URL. Jika pembukaan gagal, fungsi ini mengembalikan FALSE. "r" dibuka dalam mod baca sahaja dan menghalakan penuding fail ke pengepala fail.

feof() Fungsi mengesan sama ada hujung fail (eof) telah dicapai. Fungsi

fread() membaca fail (selamat untuk fail binari).

fclose()Fungsi menutup fail yang terbuka.



Meneruskan pembelajaran
||
<?php require('conn.php'); $id = (int)$_GET['id']; if(!isset($id) || $id==0) die('參數(shù)錯(cuò)誤!'); $query = mysqli_query($link,"select * from downloads where id='$id'"); $row = mysqli_fetch_array($query); if(!$row) exit; $filename = iconv('UTF-8','GBK',$row['filename']);//中文名稱注意轉(zhuǎn)換編碼 $savename = $row['savename']; //實(shí)際在服務(wù)器上的保存名稱 $myfile = 'files/'.$savename; //文件名稱 if(file_exists($myfile)){ mysqli_query($link,"update downloads set downloads=downloads+1 where id='$id'"); $file = @fopen($myfile, "r"); header("Content-type: application/octet-stream"); header("Content-Disposition: attachment; filename=" .$filename ); while (!feof($file)) { echo fread($file, 50000); //打開(kāi)文件最大字節(jié)數(shù)為50000 } fclose($file); exit; }else{ echo '文件不存在!'; } ?>