示例#1
0
文件: attach.php 项目: a195474368/ejw
 public static function stored_remote($temp, $data, $param)
 {
     global $_G;
     //连接 FTP
     $ftp = new ClsFTP($_G['setting']['attach']['FTP_USER'], $_G['setting']['attach']['FTP_PASS'], $_G['setting']['attach']['FTP_HOST'], $_G['setting']['attach']['FTP_PORT']);
     //FTP 模式
     $ftp->pasv($_G['setting']['attach']['FTP_PASV'] == 'true');
     //创建子文件夹
     $dir = $_G['setting']['attach']['FTP_ROOT'] . '/' . $data['type'];
     //创建根目录
     $ftp->mkdir($dir);
     //创建年文件夹
     $ftp->mkdir($dir . "/" . date("Y/"));
     //创建月日文件夹
     $ftp->mkdir($dir . "/" . date("Y/md/"));
     //添加标识符
     $mark = $param['origin'] ? $param['origin']['width'] . '-' . $param['origin']['height'] : mt_rand();
     //新文件名称
     $name = date("Y/md/") . "/" . date("H-i-s-") . $mark . "." . $data['extra'];
     /*****************/
     if ($data['type'] == 'image') {
         //缩略图
         $t = new ThumbHandler();
         //生成缩略
         if (is_array($param['thumb']) && $param['thumb'][0] > 0) {
             $local = fix_thumb($temp);
             //源图片地址
             $t->setSrcImg($temp);
             //输出文件名
             $t->setDstImg($local);
             //给缩略_打上水印
             if ($param['water'] && $param['thumb'][0] / $param['water']['width'] > $param['multiple'] && $param['thumb'][1] / $param['water']['height'] > $param['multiple']) {
                 $t->setMaskImg($param['watermark']);
                 $t->setMaskPosition($param['position']);
             }
             //生成图片
             $t->createImg($param['thumb'][0], $param['thumb'][1]);
             //上传文件
             $post = $ftp->put($dir . '/' . fix_thumb($name), $local);
             //删除临时文件
             unlink($local);
         }
         /*
         var_dump( $temp );
         var_dump( fix_thumb( $temp ) );
         var_dump( $dir.'/'.fix_thumb( $name ) );
         exit;
         exit;
         */
         //生成组图
         if (is_array($param['group'])) {
             foreach ($param['group'] as $g) {
                 $thumb = explode("*", $g);
                 if (is_array($thumb) && $thumb[0] > 0) {
                     $local = fix_thumb($temp, $thumb);
                     //源图片地址
                     $t->setSrcImg($temp);
                     //输出文件名
                     $t->setDstImg($local);
                     //给组图_打上水印
                     if ($param['water'] && $thumb[0] / $param['water']['width'] > $param['multiple'] && $thumb[1] / $param['water']['height'] > $param['multiple']) {
                         $t->setMaskImg($param['watermark']);
                         $t->setMaskPosition($param['position']);
                     }
                     //生成图片
                     $t->createImg($thumb[0], $thumb[1]);
                     //上传文件
                     $post = $ftp->put($dir . '/' . fix_thumb($name, $thumb), $local);
                     //删除临时文件
                     unlink($local);
                 }
             }
         }
         //裁切原图
         if (is_array($param['crop']) && $param['crop'][0] > 0) {
             //源图片地址
             $t->setSrcImg($temp);
             //输出文件名
             $t->setDstImg($temp);
             //生成图片
             $t->createImg($param['crop'][0], $param['crop'][1]);
             list($param['origin']['width'], $param['origin']['height']) = $param['crop'];
         }
         //给原图_打上水印
         if ($param['water'] && $param['origin']['width'] / $param['water']['width'] > $param['multiple'] && $param['origin']['height'] / $param['water']['height'] > $param['multiple']) {
             //源图片地址
             $t->setSrcImg($temp);
             //输出文件名
             $t->setDstImg($temp);
             $t->setMaskImg($param['watermark']);
             $t->setMaskPosition($param['position']);
             //生成图片
             $t->createImg(100);
         }
     }
     /*****************/
     //上传文件
     $post = $ftp->put($dir . "/" . $name, $temp);
     //绝对地址
     $file = url_merge($_G['setting']["attach"]["FTP_SITE"] . '/' . $data['type'] . '/' . $name);
     //关闭 FTP
     $ftp->close();
     return $file;
 }