ThinkPHP3.0略缩图不能保存到子目录的解决方法

 更新时间:2012年09月30日 20:43:02   作者:   我要评论
THINKPHP3.0上传文件后略缩图不能保存到子目录,是因为UploadFile.class.php这个上传类中getSubName()函数只能创建原图的子目录而不能创建略缩图的子目录,可以说是BUG

解决办法一(ThinkPHP官方提供的办法,我并没有测试过):升级到ThinkPHP3.1最新的UploadFile.class.php(https://github.com/liu21st/extend/tree/master/Extend/Library/ORG/Net),下载后替换原来的UploadFile.class.php

解决办法二:修改UploadFile.class.php的部分代码

这是自己做的解决办法,增加一个略缩图的子目录生成函数
步骤1>>

UploadFile.class.php中模仿getSubName()函数创建一个getThumbSubName()函数 

复制代码 代码如下:

private function getThumbSubName($file) {
  switch($this->subType) {
    case 'date':
      $dir = date($this->dateFormat,time());
      break;
    case 'hash':
    default:
      $name = md5($this->thumbPath);
      $dir = '';
      for($i=0;$i<$this->hashLevel;$i++) {
        $dir .= $name{$i}.'/';
      }
      break;
  }
  if(!is_dir(($this->thumbPath).$dir)) {
    mkdir(($this->thumbPath).$dir);
  }
  return $dir;
}

步骤2>>

UploadFile.class.php中158行改为
复制代码 代码如下:

$thumbPath = $this->thumbPath?$this->thumbPath.($this->autoSub?$this->getThumbSubName($file).'/':''):$file['savepath'];

最后问题解决!

相关文章

  • PHP面向对象中new self()与 new static()的区别浅析

    PHP面向对象中new self()与 new static()的区别浅析

    new static()是在PHP5.3版本中引入的新特性,无论是new static()还是new self(),都是new了一个新的对象。下面这篇文章主要给大家介绍了关于PHP面向对象中new self()与 new static()的区别,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-08-08
  • thinkPHP排行与分页显示功能示例

    thinkPHP排行与分页显示功能示例

    这篇文章主要介绍了thinkPHP排行与分页显示功能,结合实例形式分析了thinkPHP金沙国际官网查询与结果分页显示相关操作技巧,需要的朋友可以参考下
    2016-12-12
  • jquery+thinkphp实现跨域抓取数据的方法

    jquery+thinkphp实现跨域抓取数据的方法

    这篇文章主要介绍了jquery+thinkphp实现跨域抓取数据的方法,结合实例形式分析了thinkPHP结合jQuery的ajax实现跨域抓取数据的相关操作技巧,需要的朋友可以参考下
    2016-10-10
  • thinkphp5实现无限级分类

    thinkphp5实现无限级分类

    这篇文章主要为大家详细介绍了thinkphp5实现无限级分类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-02-02
  • PHP 数组遍历foreach语法结构及实例

    PHP 数组遍历foreach语法结构及实例

    下面小编就为大家带来一篇PHP 数组遍历foreach语法结构及实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • PHP 一个比较完善的简单文件上传

    PHP 一个比较完善的简单文件上传

    PHP 一个比较完善的简单文件上传 转点别人的代码,留着自己用!
    2010-03-03
  • Linux系统递归生成目录中文件的md5的方法

    Linux系统递归生成目录中文件的md5的方法

    这篇文章主要介绍了Linux系统递归生成目录中文件的md5的方法,利用PHP脚本实现,需要的朋友可以参考下
    2015-06-06
  • laravel框架关于搜索功能的实现

    laravel框架关于搜索功能的实现

    本文是作者整理的关于laravel框架搜索功能的实现原理,并附上了详细代码,有需要的小伙伴请持续关注!
    2018-03-03
  • Laravel学习教程之IOC容器的介绍与用例

    Laravel学习教程之IOC容器的介绍与用例

    最近在学习laravel,正好学习到了ioc容器,但发现网上这方面的资料较少,所以将自己学习的总结下,下面这篇文章主要给大家介绍了关于Laravel学习教程之IOC容器的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-08-08
  • Laravel中基于Artisan View扩展包创建及删除应用视图文件的方法

    Laravel中基于Artisan View扩展包创建及删除应用视图文件的方法

    这篇文章主要介绍了Laravel中基于Artisan View扩展包创建及删除应用视图文件的方法,简单分析了Laravel扩展包的安装及视图的创建与删除操作相关技巧,需要的朋友可以参考下
    2016-10-10

最新评论