fetchRow('fid = '.$id); 查询数据表,得到文件名等信息h ... PHPEye开源社区 关注全球PHP社区最新动态,研究专业PHP技术,推广国内PHP企业应用 - Discuz! Archiver">
PHPEye开源社区 » Zend Framework 使用讨论 » 求教文件下载的问题!!
《Programming PHP》第二版上市
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的,就会提示文件编码不对,打开就是乱码了,其他的文件类型,比如 图片什么的,就干脆无法打开了!!
请教是什么原因啊!!应该如何解决啊!

2007-10-10 17:01 Haohappy
header("Content-Type: application/octet-stream");
这一句要根据实际文件类型来改。

页: [1]


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.