ç®åçæ件ä¸è½½åªéè¦ä½¿ç¨HTMLçè¿æ¥æ è®°<a>ï¼å¹¶å°å±æ§hrefçURLå¼æå®ä¸ºä¸è½½çæ件å³å¯ãæ示ï¼
<a href=â
http://www.*****.net/download/book.rarâ>ä¸è½½æ件</a>
å¦æéè¿ä¸é¢ç代ç å®ç°æ件ä¸è½½ï¼åªè½å¤çä¸äºæµè§å¨ä¸è½é»è®¤è¯å«çMIMEç±»åæ件ï¼ä¾å¦å½è®¿é®book.raræ件æ¶ï¼æµè§å¨å¹¶æ²¡æç´æ¥æå¼ï¼èæ¯å¼¹åºä¸ä¸ªä¸è½½æ示æ¡ï¼æ示ç¨æ·âä¸è½½âè¿æ¯âæå¼âçå¤çæ¹å¼ãä½å¦æéè¦ä¸è½½åç¼å为.htmlçç½é¡µæ件ãå¾çæ件åPHPç¨åºèæ¬æ件çï¼ä½¿ç¨è¿ç§è¿æ¥å½¢å¼ï¼åä¼å°æ件å
容ç´æ¥è¾åºå°æµè§å¨ä¸ï¼å¹¶ä¸ä¼æ示ç¨æ·ä¸è½½ã
为äºæé«æ件çå®å
¨æ§ï¼ä¸å¸æå¨<a>æ ç¾ä¸ç»åºæ件çé¾æ¥ï¼åå¿
é¡»åæµè§å¨åéå¿
è¦ç头信æ¯ï¼ä»¥éç¥æµè§å¨å°è¦è¿è¡ä¸è½½æ件çå¤çãPHP使ç¨header()å½æ°åéç½é¡µç头é¨ä¿¡æ¯ç»æµè§å¨ï¼è¯¥å½æ°æ¥æ¶ä¸ä¸ªå¤´ä¿¡æ¯çå符串ä½ä¸ºåæ°ãæ件ä¸è½½éè¦åéç头信æ¯å
æ¬ä»¥ä¸ä¸é¨åï¼éè¿è°ç¨ä¸æ¬¡header()å½æ°å®æã以ä¸è½½å¾çtest.gif为ä¾ï¼éè¦åéç头信æ¯çæ示ï¼
header(âContent-Type:imge/gif'); //åéæå®æ件MIMEç±»åç头信æ¯
header(âContent-Disposition:attachment; filename=âtest.gifââ); //åéæè¿°æ件ç头信æ¯ï¼é件åæ件å
header(âContent-Length:3390â²); //åéæå®æ件大å°çä¿¡æ¯ï¼åä½åè
å¦æ使ç¨header()å½æ°åæµè§å¨åéäºè¿ä¸è¡å¤´ä¿¡æ¯ï¼å¾çtest.gifå°±ä¸ä¼ç´æ¥å¨æµè§å¨ä¸æ¾ç¤ºï¼è让æµè§å¨å°è¯¥æ件形æä¸è½½çå½¢å¼ãå¨å½æ°header()ä¸ï¼âContent-Typeâæå®äºæ件çMIMEç±»åï¼âContent_Dispositionâç¨äºæ件çæè¿°ï¼å¼âattachment;
filename=âtest.gifââ说æè¿æ¯ä¸ä¸ªé件ï¼å¹¶ä¸æå®äºä¸è½½åçæ件åï¼âContent_Lengthâåç»åºäºè¢«ä¸è½½æ件ç大å°ã
设置å®å¤´é¨ä¿¡æ¯ä»¥åï¼éè¦å°æ件çå
容è¾åºå°æµè§å¨ï¼ä»¥ä¾¿è¿è¡ä¸è½½ãå¯ä»¥ä½¿ç¨PHPä¸çæ件系ç»å½æ°å°æ件å
容读ååºæ¥åï¼ç´æ¥è¾åºç»æµè§å¨ãææ¹ä¾¿çæ¯ä½¿ç¨readfile()å½æ°ï¼å°æ件å
容读ååºæ¥ç´æ¥è¾åºãä¸è½½æ件test.gifçæ示ï¼
<?php
$filename = "test.gif";
header('Content-Type:image/gif'); //æå®ä¸è½½æ件类å
header('Content-Disposition: attachment; filename="'.$filename.'"'); //æå®ä¸è½½æ件çæè¿°
header('Content-Length:'.filesize($filename)); //æå®ä¸è½½æ件ç大å°
//å°æ件å
容读ååºæ¥å¹¶ç´æ¥è¾åºï¼ä»¥ä¾¿ä¸è½½
readfile($filename);
?>
ä¸é¢å¦æ碰å°ä¸æååå°±ä¼æ æ³æ£å¸¸ä¸è½½äºï¼å¯¹äºä¸æååä¸è½½æ件æåæ¾å°ä¸ä¸ªæ件ä¸è½½å®ä¾ä»£ç
<?php
header("Content-type:text/html;charset=utf-8");
// $file_name="cookie.jpg";
$file_name="å£è¯ç欢.jpg";
//ç¨ä»¥è§£å³ä¸æä¸è½æ¾ç¤ºåºæ¥çé®é¢
$file_name=iconv("utf-8","gb2312",$file_name);
$file_sub_path=$_SERVER['DOCUMENT_ROOT']."marcofly/phpstudy/down/down/";
$file_path=$file_sub_path.$file_name;
//é¦å
è¦å¤æç»å®çæ件åå¨ä¸å¦
if(!file_exists($file_path)){
echo "没æ该æ件æ件";
return ;
}
$fp=fopen($file_path,"r");
$file_size=filesize($file_path);
//ä¸è½½æ件éè¦ç¨å°ç头
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length:".$file_size);
Header("Content-Disposition: attachment; filename=".$file_name);
$buffer=1024;
$file_count=0;
//åæµè§å¨è¿åæ°æ®
while(!feof($fp) && $file_count<$file_size){
$file_con=fread($fp,$buffer);
$file_count+=$buffer;
echo $file_con;
}
fclose($fp);
?>
header("Content-type:text/html;charset=utf-8")çä½ç¨ï¼å¨æå¡å¨ååºæµè§å¨ç请æ±æ¶ï¼åè¯æµè§å¨ä»¥ç¼ç æ ¼å¼ä¸ºUTF-8çç¼ç æ¾ç¤ºè¯¥å
容
å
³äºfile_exists()å½æ°ä¸æ¯æä¸æè·¯å¾çé®é¢:å 为phpå½æ°æ¯è¾æ©ï¼ä¸æ¯æä¸æï¼æ以å¦æ被ä¸è½½çæ件åæ¯ä¸æçè¯ï¼éè¦å¯¹å
¶è¿è¡å符ç¼ç 转æ¢ï¼å¦åfile_exists()å½æ°ä¸è½è¯å«ï¼å¯ä»¥ä½¿ç¨iconv()å½æ°è¿è¡ç¼ç 转æ¢
$file_sub_path() æ使ç¨çæ¯ç»å¯¹è·¯å¾ï¼æ§è¡æçè¦æ¯ç¸å¯¹è·¯å¾é«
Header("Content-type: application/octet-stream")çä½ç¨ï¼éè¿è¿å¥ä»£ç 客æ·ç«¯æµè§å¨å°±è½ç¥éæå¡ç«¯è¿åçæ件形å¼
Header("Accept-Ranges: bytes")çä½ç¨ï¼åè¯å®¢æ·ç«¯æµè§å¨è¿åçæ件大å°æ¯æç
§åèè¿è¡è®¡ç®ç
Header("Accept-Length:".$file_size)çä½ç¨ï¼åè¯æµè§å¨è¿åçæ件大å°
Header("Content-Disposition: attachment; filename=".$file_name)çä½ç¨:åè¯æµè§å¨è¿åçæ件çå称
以ä¸å个Header()æ¯å¿
éç
fclose($fp)å¯ä»¥æç¼å²åºå
æåå©ä½çæ°æ®è¾åºå°ç£çæ件ä¸ï¼å¹¶éæ¾æ件æéåæå
³çç¼å²åº