php檔案下載
下面是我在網上的找的代碼,自己改了下:
down_file.php:
if(!empty($_GET)){
header("Content-type: application/octet-stream ; charset=utf-8"); //輸出類型
header("Content-Disposition:filename=".$name);
header("Accept-Ranges: bytes"); //檔案單位
header("Accept-Length:".$filesize); //檔案大小
header("Content-Disposition: attachment; filename=".$name);//下載時顯示的名字
$name=$_GET['name'];
$url=$_GET['url'];
$f=fopen($url.$name, "r");
$buffer=1024;
$filesize=filesize($name);
$downsize=0;
$str="";
while(!feof($f) && ($filesize-$downsize)>0){
$downsize+=$buffer;
echo fread($f,$buffer);
}
//echo $str;
fclose($f);
}
?>
html頁面:
Document
下載a.jpg
目的是下載a.jpg,
問題是點擊後快顯視窗下載的是down_file.php而不是a.jpg。。如
求指點一下,能給個能用的代碼更好了
------解決思路----------------------
$name=$_GET['name'];
$url=$_GET['url'];
$filesize=filesize($url.$name);
這三句要放在上面,否則 header("Content-Disposition:filename=".$name); 會拿不到$name導致出notice.
改成這樣
if(!empty($_GET)){
$name=$_GET['name'];
$url=$_GET['url'];
$filesize=filesize($url.$name);
header("Content-type: application/octet-stream ; charset=utf-8"); //輸出類型
header("Content-Disposition:filename=".$name);
header("Accept-Ranges: bytes"); //檔案單位
header("Accept-Length:".$filesize); //檔案大小
header("Content-Disposition: attachment; filename=".$name);//下載時顯示的名字
$f=fopen($url.$name, "r");
$buffer=1024;
$downsize=0;
$str="";
while(!feof($f) && ($filesize-$downsize)>0){
$downsize+=$buffer;
echo fread($f,$buffer);
}
//echo $str;
fclose($f);
}