phalcon html 文件下载

function downloadFile($response, $file_name, $root) {
$response->setHeader('Content-type', 'text/html;charset=utf-8');
//用以解决中文不能显示出来的问题
$file_name=iconv("utf-8","gb2312",$file_name);
$file_path=$root.'/'.$file_name;
//首先要判断给定的文件存在与否
if(!file_exists($file_path)){
echo "没有该文件文件";
return ;
}
$fp=fopen($file_path,"r");
$file_size=filesize($file_path);
$response->setHeader("Content-type" ,"application/octet-stream");
$response->setHeader("Accept-Ranges", "bytes");
$response->setHeader("Accept-Length", $file_size);
$response->setHeader("Content-Disposition", "attachment; filename=".$file_name);
$buffer=1024;
$file_count=0;
//向浏览器返回数据
while(!feof($fp) && $file_count<$file_size){
$file_con=fread($fp,$buffer);
$file_count+=$buffer;
echo $file_con;
}
fclose($fp);
}

controller 中使用方式:
function downloadAction() {
downloadFile( this>response, file, $root);//文件名,文件路径 绝对路径
}

html 使用:

<a href="/server_name/Controller/download?file=demo.txt"></a>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Phalcon 中文文档 一般都是直接看英文资料,大都能看得懂。但看到Phalcon框架如此优秀,在学习后就想和大家分享,但发现国内的人几乎没有使用的,故想翻译一下,一旦翻译才发现读懂和译出一篇好文章真的不太一样。 故前一期翻译的部分章节有点生硬,等有空的时候再回头重译吧,后面的一部分也是以英文文档为基础,但并不再是逐句翻译了。 09年左右,大量的框架出现,我看过的框架不下20种,最先看到的可能就是php.MVC了,这是一个按照struts 1x编写的,只不过同时加载的类库太多了,效率不高而且不太完善。 后来稍有名的包括 cakephp, Symfony, Akelos, Prado, Kohana等,最近几年流行的就是 zf, yii, ci等,当然还有国内几个比较有名的框架,如fleaphp, thinkphp等。 在上面的一些框架中,我比较感冒的还是ci,yii,thinkphp等。ci,thinkphp够简单,速度也不错。yii是生活在国外的华人开发,功能够全而强大,速度也不错,国内的应用也不少。 一直不太喜欢zf,记得几年前就和同行朋友聊天的时候说,像ZEND公司完全可以用C语言开发出一个扩展来,这样效率会高得多,为毛非得用PHP开发呢,事实被我验证了,但开发扩展的不是ZEND公司,而是国内一个PHP大鸟,人称鸟哥。这个框架就是非常出名的YAF,因此YAF扩展是我必装的扩展之一。同时这也是我发现的第一个C语言写的扩展框架。 但YAF的缺点是,功能非常不完善,在我看来只是简单实现了MVC结构及路由,分发等功能,像一些ORM之类的功能完全没有开发,作者好像也没有开发的意思:) 后来就发现了Phalcon,一看文档就爱上了她,功能,速度等都是我想要的,我花了一周时间看文档学习她,并在一个下午的过程中,发现了文档中的三个错误并提交了这些错误:),我决定为完善它也贡献一点自己的力量。 本文档的中文地址存放在 http://phalcon.5iunix.net Github上的地址为: https://github.com/netstu/phalcondocs ,您如果发现有些地方译的有些操蛋,烦请你fork它,并完善她。
Phalcon是一个开放源码的、全堆栈的PHP5框架,使用C扩展编写,专门为高性能优化,无需使用C语言,所有函数都以PHP类的方式。PhalconPHP 3.4.0 更新日志:2018-05-28添加Phalcon\Mvc\Router::attach直接将路由对象添加到路由器#13326中;增加了侦听请求的功能:beforeAuthorizationResolve和request:afterAuthorizationResolve事件,这种能力可以使用自定义授权解析器#13327;在Phalcon\Mvc\Model中添加呼叫事件afterFetch:刷新#12220;添加Phalcon\Http\Response::getReasonPhrase以从状态报头#13314中检索原因词组;添加Phalcon\Loader::setFileCheckingCallback来设置内部文件存在解析器#13360;增加了为Phalcon\Mvc\Collection::aggregate#12302传递聚合选项的功能;添加Phalcon\Crypt::setHashAlgo来设置用于计算消息摘要的散列算法的名称#13379;添加Phalcon\Crypt::getHashAlgo以获得用于计算消息摘要的散列算法的名称#13379;添加Phalcon\Crypt::useSigning来设置是否必须使用计算消息摘要(注意:此功能将在Phalcon4.0.0中默认启用)#13379;添加了Phalcon\Crypt::getAvailableHashAlgos以获得适用于计算消息摘要的注册散列算法列表#13379;添加了Phalcon\Crypt::__构造,现在可以在对象构造中设置密码,并且可以启用计算消息摘要,而无需明确调用setCipher或useSigning#13379;添加了Phalcon\Crypt\Mismatch,在Phalcon\Crypt中抛出的异常将使用这个类#13379;添加Phalcon\Http\Cookie::setSignKey来设置用于生成消息认证代码的符号密钥(例如消息摘要);添加了Phalcon\Http\Response\Cookies::setSignKey来设置用于生成消息认证代码的符号密钥(例如消息摘要);更改了Phalcon\Crypt::setCipher,以便在设置密码算法期间重新配置IV长度;更改了Phalcon\Crypt::setCipher,以便在密码不可用的情况下抛出Phalcon\Crypt\Exception;修复Phalcon\Debug\Dump::output的回归(#13308)以正确使用详细模式#13315;修正Phalcon\Mvc\Model\Query\Builder::having和Phalcon\Mvc\Model\Query\Builder::在哪里正确合并绑定类型#11487;修正Phalcon\Mvc\Model::setSnapshotData以正确设置旧快照;超级全球不存在时不要抛出异常#13252,#13254,#12918。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值