THinkPHP上面关于图片上传类的使用
在ThinkPHP提供的官方实例中有一个上传图像类的代码非常好,在这里我给分析下,如何的使用。
实例代码如下:
<?php class IndexAction extends Action { public function index() { $Photo = M('Photo'); $list = $Photo->order('create_time desc')->limit(2)->findAll(); $this->assign('list', $list); $this->display(); } public function upload() { if (!empty($_FILES)) { //如果有文件上传 上传附件 $this->_upload(); //$this->forward(); } } // 文件上传 protected function _upload() { import("@.ORG.UploadFile"); $upload = new UploadFile(); //设置上传文件大小 $upload->maxSize = 3292200; //设置上传文件类型 $upload->allowExts = explode(',', 'jpg,gif,png,jpeg'); //设置附件上传目录 $upload->savePath = '/tp/Examples/File/Tpl/default/Public/Uploads/'; //设置需要生成缩略图,仅对图像文件有效 $upload->thumb = true; // 设置引用图片类库包路径 $upload->imageClassPath = '@.ORG.Image'; //设置需要生成缩略图的文件后缀 $upload->thumbPrefix = 'm_,s_'; //生产2张缩略图 //设置缩略图最大宽度 $upload->thumbMaxWidth = '400,100'; //设置缩略图最大高度 $upload->thumbMaxHeight = '400,100'; //设置上传文件规则 $upload->saveRule = uniqid; //删除原图 $upload->thumbRemoveOrigin = true; if (!$upload->upload()) { //捕获上传异常 $this->error($upload->getErrorMsg()); } else { //取得成功上传的文件信息 $uploadList = $upload->getUploadFileInfo(); import("@.ORG.Image"); //给m_缩略图添加水印, Image::water('原文件名','水印图片地址') Image::water($uploadList[0]['savepath'].'m_'.$uploadList[0]['savename'], '/tp/Examples/File/Tpl/default/Public/Images/logo2.png'); $_POST['image'] = $uploadList[0]['savename']; } $model = M('Photo'); //保存当前数据对象 $data['image'] = $_POST['image']; $data['create_time'] = time(); $list = $model->add($data); if ($list !== false) { $this->success('上传图片成功!'); } else { $this->error('上传图片失败!'); } } } ?>
Meet so Meet.
C plusplus
I-PLUS....