2007-10-8 21:54
Dereky
求教文件下载的问题!!
在 controllers 的Action里,代码如下:
$uploaddir = $_SERVER['DOCUMENT_ROOT']."/uflies/";//存放目录
$fileinfo = $Files->fetchRow('fid = '.$id); 查询数据表,得到文件名等信息
header("Cache-control: private"); // fix for IE
header("Content-Type: application/octet-stream");
header("Content-Length: ".filesize($uploaddir.$fileinfo->tempname));
header("Content-Disposition: attachment; filename=\"".$fileinfo->tempname."\"");
//ob_end_flush();//输出全部内容到浏览器
$fp = fopen($uploaddir.$fileinfo->tempname, 'rb'); // 以读取方式打开指定文件
fpassthru($fp); // ** CORRECT ** 以二进制方式读取文件
fclose($fp); // 关闭文件
return;
如果读取的是 文本文件 .txt的,就一点问题也没有,如果是 .doc的,就会提示文件编码不对,打开就是乱码了,其他的文件类型,比如 图片什么的,就干脆无法打开了!!
请教是什么原因啊!!应该如何解决啊!