保存图片到数据库 生成缩略图

Posted zghao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了保存图片到数据库 生成缩略图相关的知识,希望对你有一定的参考价值。

 上传到数据库的图片

在App下面的common.php

    // 应用公共文件 
* $name为表单上传的name值
* $filePath为为保存在入口文件夹public下面uploads/下面的文件夹名称,没有的话会自动创建
* $width指定缩略宽度
* $height指定缩略高度
* 自动生成的缩略图保存在$filePath文件夹下面的thumb文件夹里,自动创建
* @return array 一个是图片路径,一个是缩略图路径,如下:
* array(2) {
["img"] => string(57) "uploads/img/20171211\3d4ca4098a8fb0f90e5f53fd7cd71535.jpg"
["thumb_img"] => string(63) "uploads/img/thumb/20171211/3d4ca4098a8fb0f90e5f53fd7cd71535.jpg"
}
*/
function uploadFile($name,$filePath,$width,$height)
{
$file = request()->file($name);
if($file){
$filePaths = ROOT_PATH . ‘public‘ . DS . ‘uploads‘ . DS .$filePath;
if(!file_exists($filePaths)){
mkdir($filePaths,0777,true);
}
$info = $file->move($filePaths);
if($info){
$imgpath = ‘uploads/‘.$filePath.‘/‘.$info->getSaveName();
$image = \think\Image::open($imgpath);
$date_path = ‘uploads/‘.$filePath.‘/thumb/‘.date(‘Ymd‘);
if(!file_exists($date_path)){
mkdir($date_path,0777,true);
}
$thumb_path = $date_path.‘/‘.$info->getFilename();
$image->thumb($width, $height)->save($thumb_path);
$data[‘img‘] = $imgpath;
$data[‘thumb_img‘] = $thumb_path;
return $data;
}else{
// 上传失败获取错误信息
return $file->getError();
}
}
}


控制器里面的
  //添加
    public function add(){
        return $this->fetch("add");
    }
    public function doadd(){
        $path = uploadFile(‘file‘,‘images‘,80,80);
        $data = input(‘post.‘);
        $data = array_merge($data,$path);
        $result = Db(‘menu‘)->insert($data);
        if($result){
            $this->success("添加成功",‘/index/reply/index‘);
        }else{
            $this->error("添加失败",‘/index/reply/index‘);
        }
   
    }

以上是关于保存图片到数据库 生成缩略图的主要内容,如果未能解决你的问题,请参考以下文章

Android 中实现选择图片生成缩略图点击查看大图的功能

PHP图片生成缩略图

图片压缩工具Thumbnailator的使用

Thumbnailator java 图片处理技术

Java生成缩略图之Thumbnailator

缩略图信息提取工具vinetto