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

2015-01-24信息快讯网

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中VC6 X86和VC9 X86的区别及 Non Thread Safe的意思
解析PHP中的内存管理,PHP动态分配和释放内存
解析php中如何直接执行SHELL
使用PHP接收POST数据,解析json数据
PHP遍历某个目录下的所有文件和子文件夹的实现代码
解析php扩展php_curl.dll不加载的解决方法
解析php file_exists无效的解决办法
关于PHP内存溢出问题的解决方法
关于Sphinx创建全文检索的索引介绍
使用Sphinx对索引进行搜索
php中让上传的文件大小在上传前就受限制的两种解决方法
关于file_get_contents返回为空或函数不可用的解决方案
解析thinkphp中的M()与D()方法的区别
解析PHP中DIRECTORY_SEPARATOR,PATH_SEPARATOR两个常量的作用
解析coreseek for sphinx的使用
探讨GDFONTPATH能否被winxp下的php支持
解析php函数method_exists()与is_callable()的区别
解析thinkphp的左右值无限分类
PHP HTML JavaScript MySQL代码如何互相传值的方法分享
用PHP实现 上一篇、下一篇的代码
php中长文章分页显示实现代码
PHP实现下载功能的代码
php流量统计功能的实现代码
说说PHP的autoLoad自动加载机制
ThinkPHP关联模型操作实例分析
Thinkphp模板中使用自定义函数的方法
关于UEditor编辑器远程图片上传失败的解决办法
php 解决旧系统 查出所有数据分页的类
PhpMyAdmin出现export.php Missing parameter: what /export_type错误解决方法
php插入中文到sqlserver 2008里出现乱码的解决办法分享
ThinkPHP 连接Oracle数据库的详细教程[全]
深入了解 register_globals (附register_globals=off 网站打不开的解决方法)
php文件打包 下载之使用PHP自带的ZipArchive压缩文件并下载打包好的文件
PHP图片处理类 phpThumb参数用法介绍
PHPThumb PHP 图片缩略图库
ThinkPHP写第一个模块应用
©2014-2024 dbsqp.com