thinkphp如何实现文件下载功能

劫个哥哥 2016-06-12 09:35:13
thinkphp如何实现文件下载功能,并且文件是如何保存的,保存到哪里
...全文
454 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
一起混吧 2016-06-12
  • 打赏
  • 举报
回复
百度搜索 php 实现下载 是很多例子的
南苑 2016-06-12
  • 打赏
  • 举报
回复
class download{  
 protected $_filename;  
 protected $_filepath;  
 protected $_filesize;//文件大小  
 protected $savepath;//文件大小  
 public function __construct($filename,$savepath){  
  $this->_filename=$filename;  
  $this->_filepath=$savepath.$filename;  
 }  
 //获取文件名  
 public function getfilename(){  
  return $this->_filename;  
 }  
 //获取文件路径(包含文件名)  
 public function getfilepath(){  
  return $this->_filepath;  
 }  
 //获取文件大小  
 public function getfilesize(){  
  return $this->_filesize=number_format(filesize($this->_filepath)/(1024*1024),2);//去小数点后两位  
 }  
 //下载文件的功能  
 public function getfiles(){  
  //检查文件是否存在  
  if (file_exists($this->_filepath)){  
   //打开文件  
   $file = fopen($this->_filepath,"r");  
   //返回的文件类型  
   Header("Content-type: application/octet-stream");  
   //按照字节大小返回  
   Header("Accept-Ranges: bytes");  
   //返回文件的大小  
   Header("Accept-Length: ".filesize($this->_filepath));  
   //这里对客户端的弹出对话框,对应的文件名  
   Header("Content-Disposition: attachment; filename=".$this->_filename);  
   //修改之前,一次性将数据传输给客户端  
   echo fread($file, filesize($this->_filepath));  
   //修改之后,一次只传输1024个字节的数据给客户端  
   //向客户端回送数据  
   $buffer=1024;//  
   //判断文件是否读完  
   while (!feof($file)) {  
    //将文件读入内存  
    $file_data=fread($file,$buffer);  
    //每次向客户端回送1024个字节的数据  
    echo $file_data;  
   }  
   fclose($file);  
  }else {  
   echo "<script>alert('对不起,您要下载的文件不存在');</script>";  
  }  
 }  
}  

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧