コード例 #1
0
 /**
  * @static
  */
 function operateAttach($source, $filename, $savedir, &$upload, $bhv)
 {
     $thumbInfo = array();
     if (PwUpload::isImage($upload['ext'])) {
         list($thumbInfo, $upload['ifthumb'], $upload['type']) = PwUpload::operateImage($source, $filename, $savedir, $upload, $bhv);
     } elseif ($upload['ext'] == 'txt') {
         if (preg_match('/(onload|submit|post|form)/i', readover($source))) {
             P_unlink($source);
             showUploadMsg('upload_content_error');
         }
         $upload['type'] = 'txt';
     }
     if ($bhv->ifftp) {
         if (!PwUpload::movetoftp($source, $savedir . $filename)) {
             return false;
         }
     } else {
         if (!PwUpload::movefile($source, PwUpload::savePath(0, $filename, $savedir))) {
             return false;
         }
     }
     if ($upload['ifthumb']) {
         PwUpload::operateThumb($thumbInfo, $bhv->allowWaterMark(), $bhv->ifftp, $upload['ext']);
     }
     return true;
 }
コード例 #2
0
 function updateIcon($uid)
 {
     global $atc_attachment_name, $db_ifftp;
     $uid = intval($uid);
     if ($uid < 1 || !S::isArray($_FILES)) {
         return $this->buildResponse(USER_INVALID_PARAMS);
     }
     ACloud_Sys_Core_Common::setGlobal('customized_current_uid', $uid);
     $user = $this->getCurrentUser();
     if (!$user->isLogin()) {
         return $this->buildResponse(USER_NOT_LOGIN);
     }
     $ext = strtolower(substr(strrchr($_FILES['icon']['name'], '.'), 1));
     L::loadClass('faceupload', 'upload', false);
     $face = new FaceUpload($user->uid);
     $icondb = PwUpload::upload($face);
     require_once R_P . 'require/showimg.php';
     $udir = str_pad(substr($user->uid, -2), 2, '0', STR_PAD_LEFT);
     if (!in_array(strtolower($ext), array('gif', 'jpg', 'jpeg', 'png', 'bmp'))) {
         return $this->buildResponse(USER_UPLOAD_CONTENT_ERROR);
     }
     $filename = "{$user->uid}.{$ext}";
     $sourceFilename = "{$user->uid}_tmp.{$ext}";
     $sourceDir = "upload/{$udir}/";
     $middleDir = "upload/middle/{$udir}/";
     $smallDir = "upload/small/{$udir}/";
     $img_w = $img_h = 0;
     $sourceFile = PwUpload::savePath($db_ifftp, $sourceFilename, $sourceDir);
     $middleFile = PwUpload::savePath($db_ifftp, $filename, $middleDir);
     PwUpload::createFolder(dirname($middleFile));
     PwUpload::movefile($sourceFile, $middleFile);
     require_once R_P . 'require/imgfunc.php';
     if (!($img_size = GetImgSize($middleFile))) {
         P_unlink($middleFile);
         return $this->buildResponse(USER_UPLOAD_CONTENT_ERROR);
     }
     list($img_w, $img_h) = getimagesize($middleFile);
     $smallFile = PwUpload::savePath($db_ifftp, $filename, $smallDir);
     $s_ifthumb = 0;
     PwUpload::createFolder(dirname($smallFile));
     if ($ext == 'gif') {
         L::loadClass('gifdecoder', 'utility', false);
         L::loadClass('gif', 'utility', false);
         $gifDecoder = new GIFDecoder($data);
         $frames = $gifDecoder->GIFGetFrames();
         if (!empty($frames)) {
             foreach ($frames as $key => $value) {
                 $frames[$key] = makeAvatarGifThumb($value, $img_w, $img_h, 48, 48);
             }
             $anime = new GIFEncoder($frames, $gifDecoder->GIFGetDelays(), $gifDecoder->GIFGetLoop(), $gifDecoder->GIFGetDisposal(), $gifDecoder->GIFGetTransparentR(), $gifDecoder->GIFGetTransparentG(), $gifDecoder->GIFGetTransparentB(), 'bin');
             $newGifData = $anime->getAnimation();
             PwUpload::createFolder(dirname($smallFile));
             writeover($smallFile, $newGifData);
             $s_ifthumb = 1;
         }
     } elseif (MakeThumb($middleFile, $smallFile, 48, 48)) {
         $s_ifthumb = 1;
     }
     if ($db_ifftp) {
         PwUpload::movetoftp($middleFile, $middleDir . $filename);
         $s_ifthumb && PwUpload::movetoftp($smallFile, $smallDir . $filename);
     }
     $user_a = explode('|', $user->icon);
     $user_a[2] = $img_w;
     $user_a[3] = $img_h;
     $usericon = setIcon("{$udir}/{$user->uid}.{$ext}", 3, $user_a);
     $userService = L::loadClass('UserService', 'user');
     /* @var $userService PW_UserService */
     $userService->update($user->uid, array('icon' => $usericon));
     list($iconurl) = showfacedesign($usericon, 1, 's');
     return $this->buildResponse(0, array('icon' => $iconurl));
 }
コード例 #3
0
ファイル: uploadicon.php プロジェクト: jechiy/PHPWind
 $middleDir = "upload/middle/{$udir}/";
 $smallDir = "upload/small/{$udir}/";
 $middleFile = PwUpload::savePath($db_ifftp, $filename, "{$middleDir}");
 PwUpload::createFolder(dirname($middleFile));
 pwCache::writeover($middleFile, $data);
 require_once R_P . 'require/imgfunc.php';
 if (!($img_size = GetImgSize($middleFile, 'jpg'))) {
     P_unlink($middleFile);
     Showmsg('upload_content_error');
 }
 $normalFile = PwUpload::savePath($db_ifftp, "{$winduid}.{$ext}", "{$normalDir}");
 PwUpload::createFolder(dirname($normalFile));
 list($w, $h) = explode("\t", $db_fthumbsize);
 if ($db_iffthumb && MakeThumb($source, $normalFile, $w, $h)) {
     P_unlink($source);
 } elseif (!PwUpload::movefile($source, $normalFile)) {
     Showmsg('undefined_action');
 }
 $smallFile = PwUpload::savePath($db_ifftp, $filename, "{$smallDir}");
 $s_ifthumb = 0;
 PwUpload::createFolder(dirname($smallFile));
 if (MakeThumb($middleFile, $smallFile, 48, 48)) {
     $s_ifthumb = 1;
 }
 if ($db_ifftp) {
     PwUpload::movetoftp($normalFile, $normalDir . "{$winduid}.{$ext}");
     PwUpload::movetoftp($middleFile, $middleDir . $filename);
     $s_ifthumb && PwUpload::movetoftp($smallFile, $smallDir . $filename);
 }
 pwFtpClose($GLOBALS['ftp']);
 $user_a = explode('|', $winddb['icon']);
コード例 #4
0
ファイル: attupload.class.php プロジェクト: adi00/wumaproject
 function transfer()
 {
     global $attachdir, $db_enhideset, $db_sellset, $db_ifpwcache;
     if (!$this->flashatt) {
         return false;
     }
     $flattids = array_keys($this->flashatt);
     $attach = $this->pw_attachs->gets(array('tid' => 0, 'pid' => 0, 'uid' => $this->post->uid, 'aid' => $flattids));
     foreach ($attach as $rt) {
         $value = $this->flashatt[$rt['aid']];
         $rt['ifthumb'] = 0;
         $rt['descrip'] = $value['desc'];
         $rt['special'] = intval($value['special']);
         $rt['needrvrc'] = intval($value['needrvrc']);
         $rt['ctype'] = $value['ctype'];
         $rt['ext'] = strtolower(substr(strrchr($rt['name'], '.'), 1));
         $srcfile = "{$attachdir}/mutiupload/{$rt['attachurl']}";
         $rt['fileuploadurl'] = $filename = $thumbname = preg_replace('/^0_/', "{$this->forum->fid}_", $rt['attachurl']);
         $thumbdir = 'thumb/';
         if ($savedir = $this->getSaveDir($rt['ext'])) {
             $rt['fileuploadurl'] = $savedir . $filename;
             $thumbdir .= $savedir;
         }
         $source = PwUpload::savePath(0, $filename, $savedir);
         $thumburl = PwUpload::savePath($this->ifftp, $thumbname, $thumbdir, 'thumb_');
         if (in_array($rt['ext'], array('gif', 'jpg', 'jpeg', 'png', 'bmp'))) {
             require_once R_P . 'require/imgfunc.php';
             if (!($img_size = GetImgSize($srcfile, $rt['ext']))) {
                 Showmsg('upload_content_error');
             }
             if ($this->allowThumb()) {
                 $thumbsize = PwUpload::makeThumb($srcfile, $thumburl, $this->getThumbSize(), $rt['ifthumb']);
             }
             if ($this->allowWaterMark()) {
                 PwUpload::waterMark($srcfile, $rt['ext'], $img_size);
                 $rt['ifthumb'] && PwUpload::waterMark($thumburl, $rt['ext']);
             }
         }
         if ($this->ifftp) {
             if (!PwUpload::movetoftp($srcfile, $rt['fileuploadurl'])) {
                 continue;
             }
             $rt['ifthumb'] && PwUpload::movetoftp($thumburl, "thumb/{$rt['fileuploadurl']}");
         } else {
             if (!PwUpload::movefile($srcfile, $source)) {
                 continue;
             }
         }
         $this->attachs[$rt['aid']] = array('aid' => $rt['aid'], 'name' => $rt['name'], 'type' => $rt['type'], 'attachurl' => $rt['fileuploadurl'], 'needrvrc' => 0, 'special' => 0, 'ctype' => '', 'size' => $rt['size'], 'hits' => $rt['hits'], 'desc' => str_replace('\\', '', $rt['descrip']), 'ifthumb' => $rt['ifthumb']);
         $pwSQL = array('fid' => $this->forum->fid, 'attachurl' => $rt['fileuploadurl'], 'descrip' => $rt['descrip'], 'ifthumb' => $rt['ifthumb']);
         if ($rt['needrvrc'] > 0 && ($rt['special'] == 1 && $this->post->allowencode && in_array($rt['ctype'], $db_enhideset['type']) || $rt['special'] == 2 && $this->post->allowsell && in_array($rt['ctype'], $db_sellset['type']))) {
             $this->attachs[$rt['aid']]['needrvrc'] = $pwSQL['needrvrc'] = $rt['needrvrc'];
             $this->attachs[$rt['aid']]['special'] = $pwSQL['special'] = $rt['special'];
             $this->attachs[$rt['aid']]['ctype'] = $pwSQL['ctype'] = $rt['ctype'];
         }
         $this->post->user['uploadnum']++;
         $this->post->user['uploadtime'] = $timestamp;
         $this->pw_attachs->updateById($rt['aid'], $pwSQL);
         $this->ifupload = $rt['type'] == 'img' ? 1 : ($rt['type'] == 'txt' ? 2 : 3);
         if ($db_ifpwcache & 512 && !$rt['needrvrc'] && $rt['type'] == 'img' && !$this->elementpic) {
             $this->elementpic = array('aid' => $rt['aid'], 'attachurl' => $rt['fileuploadurl'], 'ifthumb' => $rt['ifthumb']);
         }
     }
 }