一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - PHP教程 - PHP實(shí)現(xiàn)下載功能的代碼

PHP實(shí)現(xiàn)下載功能的代碼

2020-01-13 14:48PHP教程網(wǎng) PHP教程

PHP實(shí)現(xiàn)下載功能的代碼,并實(shí)現(xiàn)安全下載,隱藏文件真實(shí)地址等,需要的朋友可以參考下

wzskynet#163.com 
·php escapeshellcmd多字節(jié)編碼漏洞 
·詳細(xì)講解PHP中緩存技術(shù)的應(yīng)用 
·利用PHP V5開發(fā)多任務(wù)應(yīng)用程序 
·詳細(xì)解析 PHP 向 MySQL 發(fā)送數(shù)據(jù)過程 
·PHP實(shí)現(xiàn)靜態(tài)發(fā)布的方法淺談 
你一定會笑我“下載文件”如此簡單都值得說?當(dāng)然并不是想你想象的那么簡單。例如你希望客戶要填完一份表格,才可以下載某一文件,你第一個(gè)想法一定是用 “Redirect”的方法,先檢查表格是否已經(jīng)填寫完畢和完整,然后就將網(wǎng)址指到該文件,這樣客戶才能下載,例如筆者編寫的以下代碼: 

復(fù)制代碼代碼如下:


<? 
// 檢查 FORM 是否全部填寫完畢... 
if ($form_completed) { 
Header("Location: //www.ythuaji.com.cn/download/info_check.exe"); 
exit; 

?> 


或者是以下的情況: 

復(fù)制代碼代碼如下:


<a href="http://www.yourwebl.com/users/download.php?id=124524">開始下載文件</a> 


這里利用了ID方式接收要下載文件的編號,然后用“Redirect”的方式連接到實(shí)際的網(wǎng)址。 

如果你想做一個(gè)關(guān)于“網(wǎng)上購物”的電子商務(wù)網(wǎng)站,考慮安全問題,你不想用戶直接復(fù)制網(wǎng)址下載該文件,筆者建議你使用PHP直接讀取該實(shí)際文件然后下載的方法去做。程序如下: 

復(fù)制代碼代碼如下:


<? 
$file_name = "info_check.exe"; 
$file_dir = "/public/www/download/"; 
if (!file_exists($file_dir . $file_name)) { //檢查文件是否存在 
echo "文件找不到"; 
exit; 
} else { 
$file = fopen($file_dir . $file_name,"r"); // 打開文件 
// 輸入文件標(biāo)簽 
Header("Content-type: application/octet-stream"); 
Header("Accept-Ranges: bytes"); 
Header("Accept-Length: ".filesize($file_dir . $file_name)); 
Header("Content-Disposition: attachment; filename=" . $file_name); 
// 輸出文件內(nèi)容 
echo fread($file,filesize($file_dir . $file_name)); 
fclose($file); 
exit;} 
?> 


而如果文件路徑是“http”或者“ftp” 網(wǎng)址的話,則源代碼會有少許改變,程序如下: 

復(fù)制代碼代碼如下:


<? 
$file_name = "info_check.exe"; 
$file_dir = "//www.ythuaji.com.cn/"; 
$file = @ fopen($file_dir . $file_name,"r"); 
if (!$file) { 
echo "文件找不到"; 
} else { 
Header("Content-type: application/octet-stream"); 
Header("Content-Disposition: attachment; filename=" . $file_name); 
while (!feof ($file)) { 
echo fread($file,50000); 

fclose ($file); 

?> 


這樣就可以用PHP直接輸出文件了。 

實(shí)現(xiàn)php文件安全下載! 

復(fù)制代碼代碼如下:


public function downloads($name){ 
$name_tmp = explode("_",$name); 
$type = $name_tmp[0]; 
$file_time = explode(".",$name_tmp[3]); 
$file_time = $file_time[0]; 
$file_date = date("Y/md",$file_time); 
$file_dir = SITE_PATH."/data/uploads/$type/$file_date/"; 

if (!file_exists($file_dir.$name)){ 
header("Content-type: text/html; charset=utf-8"); 
echo "File not found!"; 
exit; 
} else { 
$file = fopen($file_dir.$name,"r"); 
Header("Content-type: application/octet-stream"); 
Header("Accept-Ranges: bytes"); 
Header("Accept-Length: ".filesize($file_dir . $name)); 
Header("Content-Disposition: attachment; filename=".$name); 
echo fread($file, filesize($file_dir.$name)); 
fclose($file); 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产高清在线精品一区二区 | 日本色女| 97精品国产自在现线免费 | 99er在线观看| 亚洲黄色片免费看 | 成人 在线欧美亚洲 | 亚洲26uuuu最新地址 | 男男浴室吸乳play | 96萝莉| www.色呦呦.com| 欧美色图亚洲 | 无人在线视频高清免费播放 | 99午夜高清在线视频在观看 | 成年人视频在线播放 | 特级毛片免费视频观看 | 我把寡妇日出水好爽 | 人禽l交免费视频观看+视频 | 夫妇交换小说 | 欧美日韩在线一区二区三区 | 91私密保健女子养生spa | 日剧整部剧护妻狂魔免费观看全集 | 色呦呦tv| 国产成人精品日本亚洲网站 | 波多野结衣52部合集在线观看 | 亚洲精品中文 | 国产一区日韩二区欧美三区 | 唯美 清纯 另类 亚洲制服 | 亚洲第一区在线观看 | 99精品免费视频 | 四虎影院永久网址 | 国产在线精品一区二区高清不卡 | 暖暖免费高清完整版观看日本 | 精品一区二区三区视频 | 成人二区 | 亚洲高清中文字幕 | 日本一区二区三区在线 观看网站 | 欧美乱理伦另类视频 | 好紧好爽的午夜寂寞视频 | 久久99影院 | 高清不卡日本v在线二区 | 亚洲性爱区 |