欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-07-07 08:29:50
解决办法一(thinkphp官方提供的办法,我并没有测试过):升级到thinkphp3.1最新的uploadfile.class.php(https://github.co...

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

最后问题解决!