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 展开
//打开一个文件
$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 展开
若以下回答无法解决问题,邀请你更新回答
展开全部
有这个文件吗?1.jpg
更多追问追答
追问
有的
追答
跟你的php文件是不是在一个目录下面
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
fread() 从文件指针 file 读取最多 length 个字节,但是你$buff没变,它不是一直只读1024个字节吗,如果文件大于1024个字节,你没读完,文件不完整,我觉得是这个原因吧,在这个循环里不能用$buff吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |