YII2 缩略图生成 第三方包修改
"xj/yii2-thumb-action": "^2.0"
原本的上传路径是全路径
根据日期生成的上传文件夹 不适用
比如 : upload\article\2016\02\02\abc.jpg
DirectoryPrefix配置需要指定 :article\2016\02\02
修改后只需要指定 article 即可 也就是第一层文件夹名称
// models\FileInfo.php
public static function createByUrl($url)
{
// $config = pathinfo($url); // 原本是通过pathinfo 来设置类的属性
$config = self::getConfig($url); // 修改为用自定义方法
$config['class'] = static::className();
return Yii::createObject($config);
} public static function getConfig($url){
$result = [];
$pos = strpos($url, '/');
if(!$pos){ // 第0个 和 没找到
throw new InvalidConfigException( " 图片路径异常:$url");
}
$result ['dirname'] = substr($url, 0,$pos);
$result['basename'] = substr($url,$pos);
$pos = strrpos($result['basename'],'.');
$result['filename'] = substr($result['basename'],0,$pos);
$result['extension'] = substr($result['basename'],$pos+1);
return $result;
}
亲测可用
/thumb/product/2016/07/23/20160723-23-11-1557938913aea2f_w_100_h_100.png
另注意 路径传递的参数 【w h q t】一定要和配置一致 否则403
YII2 缩略图生成 第三方包修改的更多相关文章
- win环境 yii2 框架 overtrue/wechat 包 由 sys_get_temp_dir 引发的 the directory "c:\Windows" is not writable
vendor\overtrue\wechat\src\Foundation\Application.php registerBase 方法 在初始化属性时 $this['cache'] = funct ...
- [转]myeclipse 生成JAR包并引入第三方包
myeclipse 生成JAR包并引入第三方包 我用的是myeclipse8.0 首先用myeclipse生成JAR 一.生成JAR包 1.点选项目右键—>Export 2.Java—>J ...
- Android studio module生成jar包,module中引用的第三方库没有被引用,导致java.lang.NoClassDefFoundError错误。
android studio 创建了一个Module生成jar包,这个module中有引用一些第三方的类库,比如 gson,volley等. 但是生成的jar包里,并没有将gson,volley等第三 ...
- IDEA修改jar包中class文件后重新生成jar包
一.背景 最新想要修改rebeyond大佬的冰蝎项目,特地去网上搜索如何修改jar包中的源码再替换回去的方法,但由于现在的一些文章写的太烂,导致走了很多弯路,因此写下这篇快速使用IDEA修改源码并替换 ...
- python django -6 常用的第三方包或工具
常用的第三方包或工具 富文本编辑器 缓存 全文检索 celery 布署 富文本编辑器 借助富文本编辑器,管理员能够编辑出来一个包含html的页面,从而页面的显示效果,可以由管理员定义,而不用完全依赖于 ...
- 笔记——malloc、free、不同数据类型操作、.pyc文件、python安装第三方包、验证一个网站的所有链接有效性
C — malloc( ) and free( ) C 语言中使用malloc( )函数申请的内存空间,为什么一定要使用free释放? **malloc()函数功能:是从堆区申请一段连续的空间,函数结 ...
- maven将依赖第三方包打包(package)到jar中
前提:项目是一个纯maven的java工程,通过idea中file-->new-->project-->maven来创建的,不是spring boot工程(不是通过file--> ...
- 利用Maven把项目生成jar包供其他项目使用
每当搭建框架时,第一步就是为系统整理一个接一个的jar包.用多了就开始深思,如何把自己的项目也整成jar包,供他人使用呢? 近期一直在看徐晓斌所著:<Maven实战>.因自己学识不够,只是 ...
- go get安装第三方包的前提条件和步骤
首先,你要找到第三方类包所在的网址, 例如: http://github.com/go-sql-driver/mysql分为命令行自动安装 和 手动下载 然后安装. ( 欢迎加入go语言群: 218 ...
随机推荐
- linux 最小安装 需要的后续操作
在centos7 最小安装后首先需要联网 设置dns vim /etc/resolv.conf dnsxiru 写入:nameserver 8.8.8.8nameserver 8.8.4.4 网络网关 ...
- jsp页面输出序号
<c:forEach items="${tests}" var="test" varStatus="s"> <li> ...
- treap 模版
struct Treap { struct node { node *son[]; int key,siz,wei,cnt; node(int _key,node *f) { son[]=son[]= ...
- RabbitMQ详解
本文地址:http://www.host900.com/index.php/articles/351/ 介绍RabbitMQ前,有必须先了解一下AMQP协议.AMQP协议是一个高级抽象层消息通信协议, ...
- mysql字符串函数(转载)
对于针对字符串位置的操作,第一个位置被标记为1. ASCII(str) 返回字符串str的 最左面字符的ASCII代码值.如果str是空字符串, 返回0.如果str是NULL,返回NULL. mysq ...
- <mvc:annotation-driven/>与<context:annotation-config/>的区别
在使用注解的方式配置SSM的时候一般会配置<mvc:annotation-driven/>与<context:annotation-config/>,有时候会对两者的概念有些区 ...
- [android]判断位置服务是否打开
public boolean isLocationEnabled() { int locationMode = 0; String locationProviders; if (Build.VERSI ...
- IP首部校验和的计算
ip抓包结果:0000: 00 e0 0f 7d 1e ba 00 13 8f 54 3b 70 08 00 45 00 0010: 00 2e be 55 00 00 7a 11 51 ac de ...
- [WPF]MenuItem右侧空白
<Window> <Grid Background="SteelBlue"> <Grid.ContextMenu> <ContextMen ...
- 【UE4+Vive】学习笔记1
16.9.10为了做房产项目,这两天开始学习Unreal Engine 4.之前一直用unity,但是视觉效果一直不满意,听说虚幻4的效果更好,就来试一试水. 1.安装UE4 参考资料一: http: ...