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

时间: 2024-11-07 23:20:11

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'] = function () { // return new FilesystemCache(sys_get_temp_dir()); // win 下获取的是 c:\window 没有权限 位置太敏感 加权限什么的就算了吧 return new FilesystemCache(\Yii::$app->cache-

利用DBMS_STATS包修改统计信息,欺骗优化器,生成糟糕的执行计划

在使用基于成本的优化器的优化器时,优化器生产执行计划时要估算每条SQL的执行成本,选择最佳的执行计划来执行sql语句.通过操纵统计信息就可以简介操纵执行计划的生成. 当然 需要强调的一点是,这是非常危险的行为 1 创建测试表 SQL> create table test_stats  as   2  select * from dba_objects ; Table created. 2 收集统计信息 SQL> EXEC dbms_stats.gather_table_stats(ownnam

python django -6 常用的第三方包或工具

常用的第三方包或工具 富文本编辑器 缓存 全文检索 celery 布署 富文本编辑器 借助富文本编辑器,管理员能够编辑出来一个包含html的页面,从而页面的显示效果,可以由管理员定义,而不用完全依赖于前期开发人员 此处以tinymce为例,其它富文本编辑器的使用可以自行学习 下载安装 在网站pypi网站搜索并下载"django-tinymce-2.4.0" 解压 tar zxvf django-tinymce-2.4.0.tar.gz 进入解压后的目录,工作在虚拟环境,安装 pytho

源码生成deb包

方法一 源码包要求是使用 automake 进行编译管理的. 安装路径不能指定为 /usr/local 下的目录,否则生成 deb 包期间报错. 制作的工具是 dh-make ,如果没有安装,要先安装:sudo apt-get install dh-make 以 c-icap 为例: # cd c-icap-0.2.2 # ./configure --enable-static --prefix=/opt/c-icap # make dist 将会把源码打包为 c-icap-0.2.2.tar.

Android应用发布的准备——生成渠道包

我们需要使用一个变量标明该app的渠道,通常我们可以在manifest中的application节点下声明,如下. <meta-data android:name="CHANNEL_NAME" android:value="CHANNEL_VALUE" /> 然后将CHANNEL_VALUE的值替换成对应的渠道名.我们可以使用gradle的flavor替我们完成 productFlavors { wandoujia {} qihu360 {} baidu

go get安装第三方包的前提条件和步骤

首先,你要找到第三方类包所在的网址, 例如:  http://github.com/go-sql-driver/mysql分为命令行自动安装 和 手动下载 然后安装. ( 欢迎加入go语言群: 218160862 ,群内有实践) 一.通过 go get github.com/go-sql-driver/mysql    命令安装第三方类库  要启用 go get github.com/go-sql-driver/mysql    命令,  首先必须设置环境变量GOPATH的路径.并且安装git

【JAVA】使用Eclipse依赖生成jar包时,避免最外层同时生成资源文件的配置。

使用Eclipse依赖生成jar包时,如果做配置,生成的jar包文件会全部生成在外面,这并不是我们需要的,下面我们一起来修改下配置,使生成的jar包符合我们的需求吧. 1.如果不做任何配置生成的jar包如下. 这样最原始的生成方式并不是我们想要的,我们想要的是test.properties和ums.properties文件同时放到message文件夹里面,下面修改一下Eclipse配置. 2.修改Eclipse配置,使test.properties和ums.properties文件同时放到mes

多渠道打包,生成不同包名的包

来对多渠道打包,并生成不同的包名的知识点做个总结.需要生成不同包名的原因是为了运营的ASO. 方法: 1.直接建立渠道的文件夹,修改Manifest里面的包名 2.利用占位符 当然上面两种方法各有优劣,最后说一下他们的各自的一些特点. 首先来说第一种方法,步骤: 1.根据需要生成多少个包名的包建立和main同级的文件夹. 例如:我这里需要两个不同包名的包,那就需要建立两个不同渠道的文件夹. 2.在文件夹里面新建Maifest文件 因为包名是在Manifest文件里面定义的,所以需要建立Manif

使用超酷的jQuery缩略图生成插件NailThumb制作漂亮的缩略图web应用

在线演示1 本地下载 大家在网站开发和web应用中常常需要处理图片,因为用户上传的图片往往尺寸大小各不相同,如何能够生成统一尺寸的缩略图往往是让我们头疼的问题,常规的方式基本都是使用后台程序PHP,JSP等处理上传后的图片,针对网站或者应用具体需要来切割指定大小的缩略图.主要问题在于你需要开发对应后台相关程序,并且你一旦指定了缩略图大小后,以后如果希望能够随时修改的话,往往需要对后台代码进行修改,非常麻烦!今天我们将介绍一款超强的jQuery缩略图生成插件 - NailThumb,使用这个插件可