做了一个php上传下载页面 ,上传文件正常,但下载后就打不开了,说已损坏。。怎么回事

关键是有的机上上可以,有的不行。不知道是哪里的问题。。谢谢好心人帮我解答!!!核心代码:---------------downFile.php--------------... 关键是有的机上上可以,有的不行。不知道是哪里的问题。。谢谢好心人帮我解答!!!

核心代码:

---------------downFile.php----------------
<?php

header("Content-type:text/html; charset=utf-8");

include "downFile.inc.php";
include "include/dbconn.php";

if(empty($_GET['id'])){
return;
}
$id = $_GET['id'];
$sql = "select filename from ".$DBTAG."downfile where id=$id;";
$res = mysql_query($sql,$link) or die(mysql_error());
$record = mysql_num_rows($res);
if($record==0){
echo "<script type='text/javascript'> alert('对不起!该文件不存在或已被删除!'); </script>";
return;
}

$row = mysql_fetch_array($res);
$filename = $row['filename'];
mysql_free_result($res);

downFile($filename);

$sql = "update downfile set downcount=downcount+1 where id=$id;";
mysql_query($sql,$link) or die(mysql_error());

?>

---------------downFile.inc.php----------------

<?php

function downFile($file_name){

$file_name = iconv("utf-8","gb2312",$file_name);
$file_path = "admin/files/".$file_name;
$buffer = 102400; //一次返回102400个字节

if(!file_exists($file_path)){
echo "<script type='text/javascript'> alert('对不起!该文件不存在或已被删除!'); </script>";
return;
}
//若文件存在,则打开文件
$fp = fopen($file_path,"r");
//获取下载文件的大小
$file_size = filesize($file_path);
//返回的文件
header("Content-type:application/octet-stream");
//按照字节大小返回
header("Accept-Ranges:bytes");
//返回文件大小
header("Accept-Length:$file_size");
header("Content-Disposition:attachment; filename=$file_name");

while(!feof($fp)){
$file_data = fread($fp,$buffer);
echo $file_data;
}

fclose($fp);

}

?>
----------------------------------------------------------------------

if(empty($_GET['id'])){
return;
}

这里是表示接受从下载列表页面传过来的 id 。意思是要下载那个文件的id。

-------------------------------------------------------------------------
展开
 我来答
百度网友16f5dd023
2012-06-12
知道答主
回答量:14
采纳率:0%
帮助的人:16.7万
展开全部
问题发生的具体情况能不能具体阐述下?
根据我的经验,对于某些浏览器,如果想开始一个下载需要独立弹出一个新的窗口 <a target=_blank> 或 <form target="_blank">
其次请确认以下几点:
1.该文件是否有读权限
2.是否在header之前有任何的输出,按F12使用调试工具抓包(主流浏览器都有这个功能了ie9,firefox需要firebug,chrome)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式