php文件下载
下面是我在网上的找的代码,自己改了下:
down_file.php:
<?php<br /><br />if(!empty($_GET)){<br /><br /> header("Content-type: application/octet-stream ; charset=utf-8"); //输出类型 <br /> header("Content-Disposition:filename=".$name);<br /> header("Accept-Ranges: bytes"); //文件单位<br /> header("Accept-Length:".$filesize); //文件大小<br /> header("Content-Disposition: attachment; filename=".$name);//下载时显示的名字<br />$name=$_GET['name'];<br /> $url=$_GET['url'];<br /><br /> $f=fopen($url.$name, "r");<br /> $buffer=1024;<br /> $filesize=filesize($name);<br /> $downsize=0;<br /> $str="";<br /> while(!feof($f) && ($filesize-$downsize)>0){<br /> $downsize+=$buffer;<br /> echo fread($f,$buffer);<br /><br /> }<br /> //echo $str;<br /> fclose($f);<br /><br />}<br /><br />?>
html页面:
<br /><br /> <br /> <meta charset="utf-8"><br /> <title>Document</title><br /> <br /> <body><br /> <br /> 下载a.jpg<br /><br /> <br />
目的是下载a.jpg,
问题是点击后弹出窗口下载%本文@来源gao@!dai!ma.com搞$$代^@码!网搞代gaodaima码的是down_file.php而不是a.jpg。。如下图
求指点一下,能给个能用的代码更好了
——解决思路———————-
$name=$_GET[‘name’];
$url=$_GET[‘url’];
$filesize=filesize($url.$name);
这三句要放在上面,否则 header(“Content-Disposition:filename=”.$name); 会拿不到$name导致出notice.
改成这样
<br />if(!empty($_GET)){<br /> $name=$_GET['name'];<br /> $url=$_GET['url'];<br /> $filesize=filesize($url.$name);<br /><br /> header("Content-type: application/octet-stream ; charset=utf-8"); //输出类型 <br /> header("Content-Disposition:filename=".$name);<br /> header("Accept-Ranges: bytes"); //文件单位<br /> header("Accept-Length:".$filesize); //文件大小<br /> header("Content-Disposition: attachment; filename=".$name);//下载时显示的名字<br /><br /> <br /> $f=fopen($url.$name, "r");<br /> $buffer=1024;<br /> $downsize=0;<br /> $str="";<br /> while(!feof($f) && ($filesize-$downsize)>0){<br /> $downsize+=$buffer;<br /> echo fread($f,$buffer);<br /> <br /> }<br /> //echo $str;<br /> fclose($f);<br /> <br />}<br />