欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

thinkphp,http扩展类,download函数不能上载,只把文件的内容输出到页面

程序员文章站 2022-05-10 21:07:55
...
thinkphp,http扩展类,download函数不能下载,只把文件的内容输出到页面
开始我用,http扩展类想做1个文件下载的功能
class IndexAction extends Action {

public function download()
{

$file_dir = "D:/wamp/www/test/uploads/";
$name = 'aa.rar';

$filename = $file_dir.$name;
if (!empty($name)){
import("ORG.Net.Http");
$download=new Http();
$download->download($filename,$name);
}

}
}
文件并有没以附件形式下载,而是直接在页面输出文件的内容
然后,我不用他的扩展类写1个php页面,可以正常下载


$file= 'D:/wamp/www/test/uploads/admin.rar';

if(file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;
}
?>
可以正常下载,但是我把这段代码粘贴到上面download函数,又出现http类的同样的结果,就是说,他不以附件形式下载,而是直接把文件的内容输出到页面
百思不得其解,跪求解释啊,为什么这样子,曾经用过http类的大神教教我吧,试了很久过不了这关

------解决方案--------------------
很显然你这个页面在输入Http头信息之前输出了其它内容。非常有可能是UTF-8的BOM
thinkphp,http扩展类,download函数不能上载,只把文件的内容输出到页面

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频


网友评论

文明上网理性发言,请遵守 新闻评论服务协议

我要评论
  • thinkphp,http扩展类,download函数不能上载,只把文件的内容输出到页面
  • 专题推荐