php下载文件成功后打不开

<?php//打开一个文件$file_name="1.jpg";//中文乱码$file_name=iconv("utf-8","GB2312",$file_name);/... <?php
//打开一个文件
$file_name="1.jpg";
//中文乱码
$file_name=iconv("utf-8", "GB2312", $file_name);
//判断是否存在
if(!file_exists($file_name))
{
echo "文件不存在";
return ;
}
//打开
$fp=fopen($file_name,"r");
//获取文件大小
$file_size=filesize($file_name);
//返回的文件
header("Content-type: application/octet-stream");
//按字节大小返回
header("Accept-Ranges: bytes");
//返回文件大小
header("Accept-Length: $file_size");
//想客户端返回对应的文件名
header("Content-Disposition: attachment;filename=".$file_name);
//向客户的返回数据
$buff=1024;
//下载计数器
$cont=0;
//判断是否结束
while (!feof($fp)&&($file_size-$cont>0))
{
$file_read=fread($fp,$buff);
//读了多少个字节
$cont+=$buff;
//数据返回给浏览器
echo $file_read;
}
fclose($fp);
?>
为什么下载后文件打不开,说文件出错,请各位大神解决下,初学PHP
展开
 我来答
若以下回答无法解决问题,邀请你更新回答
我是没有昵称呀
2014-09-29 · 超过17用户采纳过TA的回答
知道答主
回答量:97
采纳率:0%
帮助的人:43.9万
展开全部
有这个文件吗?1.jpg
更多追问追答
追问
有的
追答
跟你的php文件是不是在一个目录下面
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
文悕丶
2018-04-29
知道答主
回答量:8
采纳率:0%
帮助的人:2.4万
展开全部

我今天看php时也遇到了同样的问题,然后突发奇想 把原文件和下载文件变成txt比较

发现多了一个自己当时用于改编码的html段落 不知道你是不是这种情况

在代码里面删掉就能正常打开了O(∩_∩)O

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
凉赞被谁占了
2014-09-30 · TA获得超过949个赞
知道小有建树答主
回答量:576
采纳率:100%
帮助的人:309万
展开全部
fread() 从文件指针 file 读取最多 length 个字节,但是你$buff没变,它不是一直只读1024个字节吗,如果文件大于1024个字节,你没读完,文件不完整,我觉得是这个原因吧,在这个循环里不能用$buff吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式