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

  解决办法一(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'];

  最后问题解决!