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

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

时间:2014-07-22 15:55来源:网络整理 作者:网络 点击:
分享到:
ThinkPHP上传图片是否存否数据库类 DROP TABLE IF EXISTS `zj_attach`;CREATE TABLE `zj_attach` (`id` int(10) NOT NULL auto_increment,`name` varchar(100) NOT NULL COMMENT #39;附件名称#39;,`hashname` varchar(100) default NULL,`stat

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;

看下项目要求:可以选择是否存入数据库,指定文件类型,文件大小,缩略图及缩略图大小

<?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;
    }

}
//该片段来自于http://outofmemory.cn
精彩图集

赞助商链接