php做的下载功能,为什么点击下载不提示文件大小?代码里有写啊

<?$file_name=$_GET['name'];$file_dir="./up/";$filesize=filesize($file_dir.$file_name)... <?
$file_name = $_GET['name'];
$file_dir = "./up/";
$filesize=filesize($file_dir.$file_name);
if (!file_exists($file_dir . $file_name)) { //检查文件是否存在
echo "文件找不到";
exit;
} else {
$file = fopen($file_dir . $file_name,"r"); // 打开文件
// 输入文件标签
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".$filesize);
Header("Content-Disposition: attachment; filename=" . $file_name);
// 输出文件内容
echo fread($file,$filesize);
fclose($file);
exit;}
?>
展开
 我来答
百度网友dc331db
2013-10-27
知道答主
回答量:28
采纳率:0%
帮助的人:12.5万
展开全部
其实是这个函数的问题,我最近研究了很久,终于明白了。代码如下。
header("Content-type: application/octet-stream");
header("Accept-Ranges: bytes");
header("Content-Length: ".$filesize);
header("Content-Disposition: attachment; filename=“.$filename);
原理就是Accept-Length换成Content-length,这样就可以了
百度网友8b5ddc6
2012-08-29 · TA获得超过683个赞
知道小有建树答主
回答量:606
采纳率:0%
帮助的人:483万
展开全部
$file = fopen($file_dir . $file_name,"r"); 这里错啦!!!打开的文件没有扩展名,只是个路径。
更多追问追答
追问
这里不可能错,要是这里错了,下载框都不会弹出
追答
Header("Content-Disposition: attachment; filename=" . $file_name);这句有问题吧。
你前面少了一句$file_name = basename($file_name);你应该把上传的文件的扩展名去掉!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式