ThinkPHP上传图片是否存否数据库类
看下项目要求:可以选择是否存入数据库,指定文件类型,文件大小,缩略图及缩略图大小 br /
看下项目要求:可以选择是否存入数据库,指定文件类型,文件大小,缩略图及缩略图大小
<?php class AttachModel extends Model{ /** * 附件上传 * @param string $type 文件类型:jpg,png * @param int $maxsize 最大上传容量:默认100Kb * @param string $model 上传所在模块 * @param bool $insert 是否写入数据库 * @param bool $thumb 是否生成缩略图 * @param string $wh 缩略图的宽高 * Example: $upload->upload(null,102400,APP_NAME,true,true,array('300','225')); */ public function upload($type = null, $maxsize = '102400', $model = null, $insert = true, $thumb = false, $wh = array('160', '120')){ //导入上传类 import('ORG.NET.UploadFile'); $upload = new UploadFile(); $upload->maxSize = $maxsize; if ($type){ $type = explode(',', $type); $upload->allowExts = $type; }else{ $upload->allowExts = array('jpg','png','gif','jpeg'); } if ($model){ $upload->savePath = '../Public/Uploads/'.$model.'/'; }else{ $upload->savePath = '../Public/Uploads/'; } if ($thumb){ $upload->thumb = true; $upload->thumbPrefix = 'zj_'; $upload->thumbMaxWidth = $wh[0]; $upload->thumbMaxHeight = $wh[1]; } $upload->saveRule = uniqid;//上传图片命名规则 if (!$upload->upload()) { return $upload->getErrorMsg(); }else{ $uploadlist = $upload->getUploadFileInfo(); } if ($insert){ return $this->_insert($uploadlist); }else{ return $uploadlist; } } /* * 上传的附件整合成attach所需数据,存入表并返回数组 * */ private function _insert($uploadlist){ $j = count($uploadlist); $v = array(); foreach ($uploadlist as $key => $value) { $v[$key]['name'] = $value['name']; $v[$key]['hashname'] = $value['savename']; $v[$key]['savepath'] = substr($value['savepath'], 2); $v[$key]['bsize'] = $value['size']; $v[$key]['user_id'] = $_SESSION[C('USER_AUTH_KEY')]; $v[$key]['create_time'] = time(); $v[$key]['model_name'] = APP_NAME; $this->add($v[$key]); if($this->thumb) { $v[$key]['prefix'] = $this->thumbPrefix; } $v[$key]['id'] = M('Attach')->getLastInsID(); } return $v; } }
2. [代码]数据库信息 跳至 [1] [2] [全屏预览]
DROP TABLE IF EXISTS `zj_attach`; CREATE TABLE `zj_attach` ( `id` int(10) NOT NULL auto_increment, `name` varchar(100) NOT NULL COMMENT '附件名称', `hashname` varchar(100) default NULL, `status` tinyint(1) default '1' COMMENT '附件状态{1:启用,0:禁用}', `savepath` varchar(100) default NULL COMMENT '存储地址', `bsize` varchar(100) default NULL COMMENT '附件大小', `model_name` varchar(50) default NULL COMMENT '所属模块', `user_id` int(10) default NULL COMMENT '上传用户id', `create_time` int(10) default NULL COMMENT '上传时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
精彩图集
精彩文章