当前位置:首页 > CMS教程 > Thinkphp > 列表

ThinkPHP文件上传实例教程

发布:smiling 来源: PHP粉丝网  添加日期:2021-04-08 20:57:07 浏览: 评论:0 

这篇文章主要介绍了ThinkPHP文件上传实现方法,是ThinkPHP程序开发中非常常见的一个技巧,需要的朋友可以参考下

文件上传是很多PHP程序项目中常见的一个功能,今天本文就来分享一个完整的实例,来实现ThinkPHP文件上传的功能。具体方法如下:

一、action部分:

FileAction.class.php页面代码如下:

  1. <?php 
  2. class FileAction extends Action{ 
  3.   function index(){ 
  4.     $file=M('file'); 
  5.     $list=$file->select(); 
  6.     $this->assign('filelist',$list); 
  7.     $this->display();   
  8.   }   
  9.   function upload(){ 
  10.     //文件上传地址提交给他,并且上传完成之后返回一个信息,让其写入数据库   
  11.     if(emptyempty($_FILES)){ 
  12.       $this->error('必须选择上传文件');   
  13.     }else
  14.       $a=$this->up(); 
  15.       if(isset($a)){ 
  16.         //写入数据库的自定义c方法 
  17.         if($this->c($a)){ 
  18.           $this->success('上传成功');   
  19.         } 
  20.         else
  21.           $this->error('写入数据库失败');   
  22.         } 
  23.       }else
  24.         $this-error('上传文件异常,请与系统管理员联系');   
  25.       } 
  26.     } 
  27.   } 
  28.   private function c($data){ 
  29.     $file=M('file'); 
  30.     $num  =  '0'
  31.     for($i = 0; $i < count($data)-1; $i++) { 
  32.       $data['filename']=$data[$i]['savename'];       
  33.       if$file->data($data)->add()) 
  34.       { 
  35.         $num++; 
  36.       } 
  37.     } 
  38.     if($num==count($data)-1) 
  39.     { 
  40.       return true;   
  41.     }else 
  42.     { 
  43.       return false; 
  44.     } 
  45.   } 
  46.   private function up(){ 
  47.     //完成与thinkphp相关的,文件上传类的调用   
  48.     import('@.Org.UploadFile');//将上传类UploadFile.class.php拷到Lib/Org文件夹下 
  49.     $upload=new UploadFile(); 
  50.     $upload->maxSize='1000000';//默认为-1,不限制上传大小 
  51.     $upload->savePath='./Public/Upload/';//保存路径建议与主文件平级目录或者平级目录的子目录来保存   
  52.     $upload->saveRule=uniqid;//上传文件的文件名保存规则 
  53.     $upload->uploadReplace=true;//如果存在同名文件是否进行覆盖 
  54.     $upload->allowExts=array('jpg','jpeg','png','gif');//准许上传的文件类型 
  55.     $upload->allowTypes=array('image/png','image/jpg','image/jpeg','image/gif');//检测mime类型 
  56.     $upload->thumb=true;//是否开启图片文件缩略图 
  57.     $upload->thumbMaxWidth='300,500'
  58.     $upload->thumbMaxHeight='200,400'
  59.     $upload->thumbPrefix='s_,m_';//缩略图文件前缀 
  60.     $upload->thumbRemoveOrigin=1;//如果生成缩略图,是否删除原图 
  61.       
  62.     if($upload->upload()){ 
  63.       $info=$upload->getUploadFileInfo(); 
  64.       return $info
  65.     }else
  66.       $this->error($upload->getErrorMsg());//专门用来获取上传的错误信息的   
  67.     }   
  68.   } 
  69. ?> 

二、view模板部分:

模板文件index.html代码如下:

  1. <html> 
  2. <body> 
  3. <volist name="filelist" id="vo"
  4.  小图:<img src="__PUBLIC__/upload/s_{$vo['filename']}" /><br /> 
  5.  大图:<img src="__PUBLIC__/upload/m_{$vo['filename']}" /><br /> 
  6. </volist> 
  7. <form action="__URL__/upload" method="post" enctype="multipart/form-data"
  8.   <input type="file" name="file[]" /><br /> 
  9.   <input type="file" name="file[]" /><br /> 
  10.   <input type="file" name="file[]" /><br /> 
  11.   <input type="submit" value="上传" /> 
  12. </form> 
  13. </body> 
  14. </html> 

相信本文所述实例对大家的ThinkPHP程序开发可以起到一定的借鉴作用。

Tags: ThinkPHP文件上传

分享到: