日期:2014-05-17  浏览次数:20439 次

文件下载问题-有的word文件下载后乱码或显示警告,代码如下。求指点。。。
$id=$_GET['download']; //从现在页面获取该文件数据库中的ID
  $conn=mysql_connect('localhost','root','');
/* if(!$conn) 
{
echo('<b>数据库连接失败!</b>');
exit;
}
else echo '<b>连接成功!</b>';*/
  $flag=mysql_select_db('laborder' ,$conn);
$sql="select * from files where files_id=$id";
mysql_query("set names gbk");
  $result = mysql_query($sql,$conn); 
$lists=mysql_fetch_array($result);
  $file_name=$lists["files_name"];// 获取文件名
$file_dir="uploadfiles/";//标出文件所在目录
 
$file = fopen($file_dir . $file_name, "r "); // 打开文件  
// 输入文件标签 
Header( "Content-type: application/octet-stream "); 
Header( "Accept-Ranges: bytes "); 
Header( "Accept-Length: ".filesize($file_dir . $file_name)); 
Header( "Content-Disposition: attachment; filename= " . $file_name); 
echo fread($file,filesize($file_dir . $file_name)); 
fclose($file); 
exit;

------解决方案--------------------
PHP code
$contents=fread($file,filesize($file_dir . $file_name));
echo iconv("UTF-8", "GBK",$contents);
fclose($file);  
exit;

------解决方案--------------------
探讨

不乱才有问题!

把文件存为没有BOM的UTF8格式