-
ThinkPHP 5 文件上传及指定宽高生成缩略图公共方法
这个是非常常用的案例,ThinkPHP 5 文件上传及指定宽高生成缩略图公共方法 /** * 单文件上传 * name:表单上传文件的名字 * ext: 文件允许的后缀,字符串形式 * path:文件保存目录 */ public function file_upload($name,$ext,$path){ $dir_path=ROOT_PATH.'/public/uploads/'.$path; if (!is_dir($dir_path))mkdir($dir_path, 0777);// 使用最大权限0777创建文件 $file = request()->file($name); $info = $file->validate(['size'=>1572864,'ext'=>$ext])->move($dir_path,true,false); if($info){ // 成功上传后 获取上传信息 $file_path = $info->getSaveName(); $data['file_path'] = '/uploads/'.$path.'/'.$info->getSaveName(); }else{ // 上传失败获取错误信息 $data['file_path'] =$file->getError(); } return $data; } /** * 图片缩率图处理 * file_path:文件路径 * width :目标宽度 * height:目标高 * path:文件保存目录 : 需事先手动创建 */ public function file_upload_thumb($file_path,$width,$height,$path){ $fiel_url = ROOT_PATH."/public".$file_path; $image = \think\Image::open($fiel_url); $save_url = '/uploads/'.$path."/".sha1($fiel_url)."_".$width."_".$height.".".$image->type(); $save_name = ROOT_PATH."/public".$save_url; $image->thumb($width, $height)->save($save_name); return $save_url; }
/* * 图片上传接口 */ public function img_upload(){
if(!empty($_FILES["file_img"]["name"])){ $file_mes = $this->file_upload('file_img','jpg,png,gif,jpeg','gift'); $file_path = $file_mes['file_path']; switch ($upload_type) { case '1': $return_data['prize_img'] = $file_path; $return_data['prize_img_view'] = Config::get("config.host_url").$file_path; $return_data['prize_img_400'] = $this->file_upload_thumb($file_path,400,400,'gift_thumb'); $return_data['prize_img_200'] = $this->file_upload_thumb($file_path,200,200,'gift_thumb'); $return_data['prize_img_150'] = $this->file_upload_thumb($file_path,150,150,'gift_thumb'); break; default: $return_data['img_path'] =''; break; } return json(['code' => '1', 'message' => '上传成功','result'=>$return_data]); }else{ return json(['code' => '2', 'message' => '图片不能为空!','result'=>null]); } }
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式