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]);
}
}
ThinkPHP 5 文件上传及指定宽高生成缩略图公共方法的更多相关文章
- 将本地文件上传到指定的服务器(HttpWebRequest方法)
将本地文件上传到指定的服务器(HttpWebRequest方法),通过文件流,带文件名,同文件一同上传的表单文本域及值. ///<summary> /// 将本地文件上传到指定的服务器(H ...
- thinkphp实现文件上传
文件上传详细讲解 http://www.thinkphp.cn/info/194.html 上传根目录不存在问题解决方法 http://www.thinkphp.cn/topic/10779.html
- Java 将要上传的文件上传至指定路径代码实现
代码: /** * 上传文件到指定路径 * @param mFile 要上传的文件 * @param path 指定路径 */ public static void uploadFile(Multip ...
- ThinkPHP之文件上传
在项目其中.我们有的时候需要上传图片的功能.简单的从面相过程的方法是相对较为复杂的,要一步一步的来.假设用框架的话,相对就简单了很多,主要就是方法以及每个变量所代表的意义,然后就是一些注意的地方了. ...
- .NET 等宽、等高、等比例、固定宽高生成缩略图 类
#region 根据原图片生成等比缩略图 /// <summary> /// 根据源图片生成缩略图 /// </summary> /// <param name=&quo ...
- THINKPHP源码学习--------文件上传类
TP图片上传类的理解 在做自己项目上传图片的时候一直都有用到TP的上传图片类,所以要进入源码探索一下. 文件目录:./THinkPHP/Library/Think/Upload.class.php n ...
- ThinkPHP3.2.3多文件上传,文件丢失问题的解决
描述 thinkphp多文件上传时,有些时候会出现文件丢失的情况.比如上传多个图片,最终只上传了一个图片.本地测试的时候是正常的,但上传到服务器上就会出现丢失文件这种情况. 原因 查看tp上传类(Th ...
- PHP封装一个通用好用的文件上传处理类
封装一个文件上传类完成基本功能如下: 1.可上传多个或单个文件 2.上传成功返回一个或多个文件名 3.上传失败则返回每个失败文件的错误信息 上传类中的基本功能: 1.构造参数,用户可以自定义配置参数, ...
- JavaScript,php文件上传简单实现
非ajax,非iframe,最原始使用file控件的文件上传,记录过程备忘.(同步,页面刷新) 实现目标,能够将文件上传到指定位置. 客户端用input的file控件: <form action ...
随机推荐
- [cf920E][set+dfs]
https://codeforc.es/contest/920/problem/E E. Connected Components? time limit per test 2 seconds mem ...
- Mac+Appium+Python+Pycharm环境搭建
为什么优先选择Mac做自动化测试? 1.既可以做iOS端的测试也可以进行Android端测试 2.Mac运行效率相对于Win要高很多,可以真正发挥appium的功能 以下是在Mac上完整搭建过程 一. ...
- 原生js手机端触摸下拉刷新
废话不多说,直接上代码,这里感谢我的好朋友,豆姐 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...
- BZOJ1209 最佳包裹 (三维凸包 增量法)
题意 求三维凸包的表面积. N≤100N\le100N≤100 题解 暴力往当前的凸包里加点.O(n2)O(n^2)O(n2).题解详见大佬博客 扰动函数shakeshakeshake是为了避免四点共 ...
- HashMap与HashTable的理解与区别
Hashtable是java一开始发布时就提供的键值映射的数据结构,而HashMap产生于JDK1.2.虽然Hashtable比HashMap出现的早一些,但是现在Hashtable基本上已经被弃用了 ...
- jQuery事件触发前后进行其他的操作
<!-- 事件触发前后执行其他操作的三种方式: 多适用于:公众号的订阅,有订阅的可以收到文章,没有订阅的收不到文章. --> <!DOCTYPE html> <html ...
- 什么是php面向对象及面向对象的三大特性
什么是面向对象? 面向对象编程,也就是我们常说的OOP,其实是面向对象的一部分.面向对象一共有3个部分:面向对象分析(OOA).面向对象设计(OOD).面向对象编程(OOP).我们现在将要学习的就是面 ...
- 为什么final类型map和list内容可以修改
URL地址:https://blog.csdn.net/AlbertFly/article/details/76855367
- java类加载和对象初始化
对象初始化过程: 1.首先,初始化父类中的静态成员变量和静态代码块,按照在程序中出现的顺序初始化: 2.然后,初始化子类中的静态成员变量和静态代码块,按照在程序中出现的顺序初始化: 3.其次,初 ...
- js 读xml文件
参考 http://www.w3school.com.cn/xmldom/dom_document.asp A.xml <?xml version="1.0" encodin ...