/**
     * 文件上传
     * @param  array  $files   要上传的文件列表(通常是$_FILES数组)
     * @param  array  $setting 文件上传配置
     * @param  string $driver  上传驱动名称
     * @param  array  $config  上传驱动配置
     * @return array           文件上传成功后的信息
     */
    public function upload($files, $setting, $driver = 'Local', $config = null){
        /* 上传文件 */
        $setting['callback'] = array($this, 'isFile');
$setting['removeTrash'] = array($this, 'removeTrash');
        $Upload = new Upload($setting, $driver, $config);
        $info   = $Upload->upload($files);
        $image = new \Think\Image(); 

        if($info){ //文件上传成功,记录文件信息
            foreach ($info as $key => &$value) {
                /* 已经存在文件记录 */
                if(isset($value['id']) && is_numeric($value['id'])){
                    continue;
                }
                /* 记录文件信息 */
                //大图
                $value['path'] = substr($setting['rootPath'], 1).$value['savepath'].$value['savename']; //在模板里的url路径
                $image->open('./'.$value['path']);
                //中图
                //按照原图的比例生成一个最大为150*150的缩略图并保存为:'m'.$value['savename']
                $image->thumb(450, 450)->save('./'.substr($setting['rootPath'], 1).$value['savepath'].'middle_'.$value['savename']);
                $value['middle'] = substr($setting['rootPath'], 1).$value['savepath'].'middle_'.$value['savename'];
                //小图
                $image->thumb(150, 150)->save('./'.substr($setting['rootPath'], 1).$value['savepath'].'small_'.$value['savename']);
                $value['small'] = substr($setting['rootPath'], 1).$value['savepath'].'small_'.$value['savename'];
                //图片标题
                $title_array = explode('.', $value['name']);
                $value['title'] = $title_array[0];
                if($this->create($value) && ($id = $this->add())){
                    $value['id'] = $id;
                } else {
                    //TODO: 文件上传成功,但是记录文件信息失败,需记录日志
                    unset($info[$key]);
                }
            }
            return $info; //文件上传成功
        } else {
            $this->error = $Upload->getError();
            return false;
        }
    }

看到上面的代码,那我们只需要在picture表中增加middle,small两个字段即可。

如果有别的需求自行扩展即可。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部