ThinkPHP的UploadFile类生成多个缩略图存放不同目录

   系统自带的文件上传类可以生成多个缩略图,但是都存放在同一个目录下。

    我发现只要在系统的源代码里修改一下,就可以实现缩略图存放在不同目录下!

    把原来的:

    

if(1 == $this->thumbType){
   Image::thumb2($filename,$thumbPath.$thumbname.'.'.$thumbExt,'',$thumbWidth[$i],$thumbHeight[$i],true);
}else{
   Image::thumb($filename,$thumbPath.$thumbname.'.'.$thumbExt,'',$thumbWidth[$i],$thumbHeight[$i],true);
}
改成:
if(1 == $this->thumbType){                                                              Image::thumb2($filename,$thumbPath[$i].$thumbname.'.'.$thumbExt,'',$thumbWidth[$i],$thumbHeight[$i],true);
}else{
    Image::thumb($filename,$thumbPath[$i].$thumbname.'.'.$thumbExt,'',$thumbWidth[$i],$thumbHeight[$i],true);
}
控制器上上传参数设置:
$date = date('Ymd');
        $targetFolder = '../Uploads/'; // Relative to the root
        $targetFolder_s = '../Uploads/s/'.date('Ymd').'/'; // Relative to the root
        $targetFolder_m = '../Uploads/m/'.date('Ymd').'/'; // Relative to the root
        $targetFolder_b = '../Uploads/b/'.date('Ymd').'/'; // Relative to the root
        if(!file_exists($targetFolder_b)){
            mkdir($targetFolder_b);
        }
        if(!file_exists($targetFolder_s)){
            mkdir($targetFolder_s);
        }
        if(!file_exists($targetFolder_m)){
            mkdir($targetFolder_m);
        }
import("ORG.Net.UploadFile");
            $upload = new UploadFile();
            $upload->maxSize  = 10485760 ;
            $upload->allowExts  = array('jpg', 'gif', 'png', 'jpeg');
            $upload->savePath =  $targetFolder;
            $upload->thumb = true;
            $upload->thumbPrefix='';
            $upload->thumbPath=array($targetFolder_s,$targetFolder_m,$targetFolder_b);
            $upload->thumbMaxWidth='200,300,620';
            $upload->thumbMaxHeight='120,180,300';
            $upload->thumbRemoveOrigin=true;
            if(!$upload->upload()) {
                echo $upload->getErrorMsg();
            }else{
                $info =  $upload->getUploadFileInfo();
            }
改完后,好像不能自动检测目录的存在,需要自己手动判断了。

上传后的效果图:

ThinkPHP的UploadFile类生成多个缩略图存放不同目录

用的是uploadify插件!

其它代码在另一篇:http://my.oschina.net/geomen/blog/150183

你可能感兴趣的:(uploadify,thinkphp)