保存图片到数据库 生成缩略图
时间:2022-03-15 07:37
上传到数据库的图片
在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‘);
}
}