龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

ThinkPHP上传图片是否存否数据库类

时间:2014-07-22 14:51来源: 作者: 点击:
分享到:
看下项目要求:可以选择是否存入数据库,指定文件类型,文件大小,缩略图及缩略图大小 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;
精彩图集

赞助商链接