PHP教程

编程语言ThinkPHP3.0略缩图不能保存到子目录解决办法总结_PHP教程

本文主要是介绍编程语言ThinkPHP3.0略缩图不能保存到子目录解决办法总结_PHP教程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

编程语言ThinkPHP3.0略缩图不能保存到子目录解决办法总结_PHP教程

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'];

文章来源:https://www.php.cn/faq/298237.html

百度网盘搜索
www.ijzcn.cn
阿哇教育
www.awaedu.com
作文哥
www.zuowenge.cn
搜码吧
www.somanba.cn
这篇关于编程语言ThinkPHP3.0略缩图不能保存到子目录解决办法总结_PHP教程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!