首页 > 语言 > PHP > 正文

实例讲解ThinkPHP的UploadFile文件上传类的详细用法

2024-05-05 00:01:25
字体:
来源:转载
供稿:网友

ThinkPHP文件上传自带了上传类,使用起来非常方便,我们将以一个文件上传实例来讲解ThinkPHP上传类的实际用法,上传类使用时有详细的中文注释,可以非常方便的告诉你类的一些方法或变量的使用方法。

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

模板文件index.html
 

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

注:相关教程知识阅读请移步到PHP教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选