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 ...
随机推荐
- POJ-2478-Farey Sequence(欧拉函数)
链接: https://vjudge.net/problem/POJ-2478 题意: The Farey Sequence Fn for any integer n with n >= 2 i ...
- MVC4 Application Install
For VS2010 http://www.asp.net/mvc/mvc4 For VS2012 http://www.asp.net/downloads
- jQuery相关方法4-----元素创建和移除
一.创建添加元素 父元素.append(子元素)-----被动追加创建 子元素.appendTo(父元素)-----主动追加创建 <script src="http://libs.ba ...
- mysql中 where与having的区别
having子句与where有相似之处但也有区别,都是设定条件的语句.在查询过程中聚合语句(sum,min,max,avg,count)要比having子句优先执行.而where子句在查询过程中执行优 ...
- 【原创】go语言学习(九)指针类型
目录 变量和内存地址 指针类型 值拷贝和引用拷贝 变量和内存地址 1.每个变量都有内存地址,可以说通过变量来操作对应大小的内存 var a int32 a = 100 fmt.Printf(“%d\n ...
- P3986 斐波那契数列——数学(EXGCD)
https://www.luogu.org/problem/P3986 很久很久以前,我好像写过exgcd,但是我已经忘了: 洛谷上搜EXGCD搜不到,要搜(扩展欧几里得) 这道题就是ax+by=k, ...
- 基于JSON的接口测试框架
更多学习资料请加QQ群: 822601020获取 实现效果 需求场景: 公司微服务接口使用数字签名的方式, 使用Postman调试接口每次都需要修改源码将验签临时关闭, 但是关闭后,其他微服务不能正常 ...
- selenium鼠标操作
#-*- coding:utf-8 -*- import time from selenium import webdriver from selenium.webdriver.common.acti ...
- Centos 7设置静态IP,修改时区,关闭防火墙
Centos 7设置静态IP # vi /etc/sysconfig/network-scripts/ifcfg-enxxx BOOTPROTO="static" ...... I ...
- Eclipse插件(导出UML图,打开文件资源管理器插件,静态代码分析工具PMD,在eclipse上安装插件)
目录 能够导出UML图的Eclipse插件 打开文件资源管理器插件 Java静态代码分析工具PMD 如何在eclipse上安装插件 JProfiler性能分析工具 从更新站点安装EclEmma 能够导 ...