我正在使用Yii框架,我有网站允许管理员上传文本文件或pdf.Now我想允许用户点击链接并开始下载该文件.如何在Yii框架内实现?
我将文件存储在Yiiapplication / uploads / downloads / test.txt中.
我已经尝试了以下在网上找到的代码,但它无效.
Yii::app()->request->sendFile(Yii::getPathOfAlias('webroot').'/uploads/downloads/23602414.txt','click me');
我是否需要改进它所下载的是一个带有’< a href ='的文本文件,它不是文件的原始内容.
解决方法:
如果您不想使用扩展,为什么不尝试创建一个强制下载的简单方法.
public function downloadFile($fullpath){
if(!empty($fullpath)){
header("Content-type:application/pdf"); //for pdf file
//header('Content-Type:text/plain; charset=ISO-8859-15');
//if you want to read text file using text/plain header
header('Content-disposition: attachment; filename="'.basename($fullpath).'"');
header('Content-Length: ' . filesize($fullpath));
readfile($fullpath);
Yii::app()->end();
}
}
public function actionDownload(){
$path = Yii::getPathOfAlias('webroot')."/uploads/downloads/23602414.pdf";
$this->downloadFile($path);
}
<?PHP echo CHtml::link('Download file',array('youController/download')); ?>
您可以通过检查文件类型使内容类型更灵活来改进此代码,然后再决定标题类型.可以是pdf | txt | jpeg | etc.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。