使用tp5的thinkphp-image類庫處理圖片
使用方法手冊都有,為了增加印象我自己記錄一下
手冊:https://www.kancloud.cn/manual/thinkphp5/177530
我的需求是在app的管理后台上傳壓縮的圖片
//圖片壓縮上傳
public function upload()
{
$file = $this->request->file('file');
// 移動路徑
$upload_path = 'public/uploads/';
//縮略保存路徑
$save_path = 'public/uploads/';
//移動至 $upload_path
$info = $file->validate(['ext' => 'jpg,gif,png,bmp,jpeg,JPG'])->move($upload_path);
//打開移動的圖片
$image = \think\Image::open($save_path.$info->getSaveName());
//壓縮圖片
$image->thumb(200, 200)->save($save_path.$info->getSaveName());
if($info){
$result['code'] = 1;
$result['info'] = '圖片上傳成功!';
$path=str_replace('\\','/',$info->getSaveName());
//保存到數據庫路徑
$result['url'] = '/public/uploads/'. $path;
return $result;
}else{
// 上傳失敗獲取錯誤信息
$result['code'] =0;
$result['info'] = $file->getError();
$result['url'] = '';
return $result;
}
}
我這里的返回格式是后台頁面定義接收的,你們自己根據需求修改
如果出現 找不到 thinkphp\Image 則將vendor/topthink/think-image/src下的image文件和image.php復制到thinkphp\library\think下即可解決