コード例 #1
0
 function add($attach)
 {
     $upload = array('attname' => 'attachment', 'id' => intval($attach['aid']), 'name' => $attach['name'], 'size' => $attach['size'], 'type' => 'zip', 'ifthumb' => 0, 'fileuploadurl' => '');
     $upload['ext'] = strtolower(substr(strrchr($attach['attachurl'], '.'), 1));
     if (empty($upload['ext']) || !isset($this->bhv->ftype[$upload['ext']])) {
         return false;
     }
     if ($upload['size'] < 1 || $upload['size'] > $this->bhv->ftype[$upload['ext']] * 1024) {
         return false;
     }
     $dir = dirname($attach['attachurl']);
     $dir && ($dir .= '/');
     $srcfile = PwUpload::savePath($this->bhv->ifftp, basename($attach['attachurl']), $dir);
     if (!file_exists($srcfile)) {
         if ($this->bhv->ifftp) {
             $ftp =& PwUpload::getFtpObj();
             PwUpload::createFolder(dirname($srcfile));
             if (!$ftp->get($srcfile, $attach['attachurl'])) {
                 return false;
             }
         } else {
             return false;
         }
     }
     list($filename, $savedir) = $this->bhv->getFilePath($upload);
     $source = PwUpload::savePath($this->bhv->ifftp, $filename, $savedir);
     PwUpload::createFolder(dirname($source));
     if (!copy($srcfile, $source)) {
         return false;
     }
     $upload['fileuploadurl'] = $savedir . $filename;
     PwUpload::operateAttach($source, $filename, $savedir, $upload, $this->bhv);
     $this->upload[] = $upload;
     return true;
 }
コード例 #2
0
 public function makeThumb(PwImage $image, $thumbInfo, $store)
 {
     $quality = Wekit::C('attachment', 'thumb.quality');
     foreach ($thumbInfo as $key => $value) {
         $thumburl = $store->getAbsolutePath($value[0], $value[1]);
         PwUpload::createFolder(dirname($thumburl));
         $result = $image->makeThumb($thumburl, $value[2], $value[3], $quality, $value[4], $value[5]);
         if ($result === true && $image->filename != $thumburl) {
             $this->ifthumb |= 1 << $key;
             $this->_thumb[] = array($thumburl, $value[1] . $value[0]);
         }
     }
 }
コード例 #3
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));
 }
コード例 #4
0
ファイル: WindidUserService.php プロジェクト: ccq18/EduSoho
 public function defaultAvatar($uid, $type = 'face')
 {
     Wind::import('LIB:upload.PwUpload');
     $_avatar = array('.jpg' => '_big.jpg', '_middle.jpg' => '_middle.jpg', '_small.jpg' => '_small.jpg');
     $defaultBanDir = Wind::getRealDir('RES:') . 'images/face/';
     $store = Wind::getComponent('storage');
     $fileDir = 'avatar/' . Pw::getUserDir($uid) . '/';
     foreach ($_avatar as $des => $org) {
         $toPath = $store->getAbsolutePath($uid . $des, $fileDir);
         $fromPath = $defaultBanDir . $type . $org;
         PwUpload::createFolder(dirname($toPath));
         PwUpload::copyFile($fromPath, $toPath);
         $store->save($toPath, $fileDir . $uid . $des);
     }
     return true;
 }
コード例 #5
0
ファイル: uploadicon.php プロジェクト: jechiy/PHPWind
 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));
         pwCache::writeover($smallFile, $newGifData);
         $s_ifthumb = 1;
     }
 } elseif (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']);
 $user_a[2] = $img_w;
 $user_a[3] = $img_h;
コード例 #6
0
ファイル: download.class.php プロジェクト: jechiy/PHPWind
 function downloadMove($tmp_name, $filename)
 {
     if (strpos($filename, '..') !== false || strpos($filename, '.php.') !== false || eregi("\\.php\$", $filename)) {
         exit('illegal file type!');
     }
     PwUpload::createFolder(dirname($filename));
     if (@rename($tmp_name, $filename)) {
         @chmod($filename, 0777);
         return true;
     } elseif (@copy($tmp_name, $filename)) {
         @chmod($filename, 0777);
         @unlink($tmp_name);
         return true;
     } elseif (is_readable($tmp_name)) {
         pwCache::writeover($filename, readover($tmp_name));
         if (file_exists($filename)) {
             @chmod($filename, 0777);
             @unlink($tmp_name);
             return true;
         }
     }
     return false;
 }
コード例 #7
0
ファイル: qq_oauth2.php プロジェクト: fanqimeng/4tweb
 /**
  * 初始化用户头像
  * @param int $uid
  * @param string $url 腾讯头像地址
  */
 function restore_avatar($uid, $url)
 {
     $store = Wind::getComponent('storage');
     Wind::import('SRV:upload.PwUpload');
     Wind::import('LIB:image.PwImage');
     $fileDir = sprintf('avatar/%s/', Pw::getUserDir($uid));
     $_avatar = array('.jpg' => 200, '_middle.jpg' => 120, '_small.jpg' => 50);
     $file = tempnam(sys_get_temp_dir(), 'avatar');
     $img = httpget($url);
     file_put_contents($file, $img);
     $img = new PwImage($file);
     $thumb = new PwImageThumb($img);
     foreach ($_avatar as $des => $size) {
         $toPath = $store->getAbsolutePath($uid . $des, $fileDir);
         PwUpload::createFolder(dirname($toPath));
         if ($size < 100) {
             $thumb->setWidth($size);
             $thumb->setHeight($size);
             $thumb->setDstFile($toPath);
             $thumb->execute();
         } else {
             copy($file, $toPath);
         }
     }
     Wind::import('SRV:upload.action.PwAvatarUpload');
     Wind::import('SRV:upload.PwUpload');
     PwSimpleHook::getInstance('update_avatar')->runDo($uid);
     @unlink($file);
     return true;
 }
コード例 #8
0
 /**
  * @static
  */
 function createFolder($path)
 {
     if (!is_dir($path)) {
         PwUpload::createFolder(dirname($path));
         @mkdir($path);
         @chmod($path, 0777);
         @fclose(@fopen($path . '/index.html', 'w'));
         @chmod($path . '/index.html', 0777);
     }
 }
コード例 #9
0
     $savedir .= 'Day_' . date('ymd') . '/';
 } elseif ($o_mkdir == '3') {
     $savedir .= 'Cyid_' . $selaid . '/';
 } else {
     $savedir .= 'Mon_' . date('ym') . '/';
 }
 $lastphoto = '';
 $i = 1;
 $photos = array();
 $query = $db->query("SELECT * FROM pw_cnphoto WHERE aid=" . S::sqlEscape($aid) . ' AND pid IN(' . S::sqlImplode($selid) . ')');
 while ($rt = $db->fetch_array($query)) {
     if (file_exists($attachdir . '/' . $rt['path'])) {
         $ext = strtolower(substr(strrchr($rt['path'], '.'), 1));
         $prename = randstr(4) . $timestamp . substr(md5($timestamp . $i++ . randstr(8)), 10, 15);
         $filename = $selaid . "_{$prename}." . $ext;
         PwUpload::createFolder($attachdir . '/' . $savedir);
         $ifthumb = 0;
         if (!@copy($attachdir . '/' . $rt['path'], $attachdir . '/' . $savedir . $filename)) {
             continue;
         }
         if ($rt['ifthumb']) {
             $lastpos = strrpos($rt['path'], '/') + 1;
             $path = $attachdir . '/' . substr($rt['path'], 0, $lastpos) . 's_' . substr($rt['path'], $lastpos);
             if (copy($path, $attachdir . '/' . $savedir . 's_' . $filename)) {
                 $ifthumb = 1;
             }
         }
         $path = $savedir . $filename;
     } else {
         $path = $rt['path'];
         $ifthumb = $rt['ifthumb'];
コード例 #10
0
ファイル: IndexController.php プロジェクト: sanzhumu/nextwind
 private function _defaultAvatar($uid, $type = 'face')
 {
     Wind::import('LIB:upload.PwUpload');
     $_avatar = array('.jpg' => '_big.jpg', '_middle.jpg' => '_middle.jpg', '_small.jpg' => '_small.jpg');
     $defaultBanDir = Wind::getRealDir('ROOT:') . 'res/images/face/';
     $fileDir = 'avatar/' . Pw::getUserDir($uid) . '/';
     $attachPath = Wind::getRealDir('ROOT:') . 'windid/attachment/';
     foreach ($_avatar as $des => $org) {
         $toPath = $attachPath . $fileDir . $uid . $des;
         $fromPath = $defaultBanDir . $type . $org;
         PwUpload::createFolder(dirname($toPath));
         PwUpload::copyFile($fromPath, $toPath);
     }
     return true;
 }