function store($mode = '', $params = array()) { if ($mode == 'avatar') { delete_avatar($params['user_id'], $params['avatar_ext_id']); $file_path = get_avatar_path($params['user_id'], $this->file_ext_id); return $this->_move($file_path); } else { if ($mode == 'attach') { $file_path = get_attach_path($params['topic_id']); return $this->_move($file_path); } else { trigger_error("Invalid upload mode: {$mode}", E_USER_ERROR); } } }
<?php define('APPTYPEID', 2); define('CURSCRIPT', 'forum'); require '../source/class/class_core.php'; require '../source/function/function_forum.php'; C::app()->init(); isset($_REQUEST['uid']) ? $uid = $_REQUEST['uid'] : ($res['changeCheck'] = 0); $size = isset($_REQUEST['size']) ? $_REQUEST['size'] : ''; $type = isset($_GET['type']) ? $_GET['type'] : ''; //isset($_REQUEST['pic']) ? $s = $_REQUEST['pic'] : $res['changeCheck'] = 0; if ($res || $res == NULL) { $avatar = '../uc_server/data/avatar/' . get_avatar($uid, $size, $type); $basedir = DISCUZ_ROOT . './uc_server/data/avatar/' . get_avatar_path($uid, $size, $type); dmkdir($basedir); //$s=base64_decode($s); //file_put_contents($avatar, $s); if (isset($_FILES['pic'])) { move_uploaded_file($_FILES["pic"]["tmp_name"], $avatar); } else { $res['changeCheck'] = 0; echo json_encode($res); exit; } $res['changeCheck'] = 1; } function get_avatar($uid, $size = 'middle', $type = '') { $size = in_array($size, array('big', 'middle', 'small')) ? $size : 'middle'; $uid = abs(intval($uid)); $uid = sprintf("%09d", $uid);
$dir1 = substr($uid, 0, 3); $dir2 = substr($uid, 3, 2); $dir3 = substr($uid, 5, 2); !is_dir($dir . '/' . $dir1) && mkdir($dir . '/' . $dir1, 0777); !is_dir($dir . '/' . $dir1 . '/' . $dir2) && mkdir($dir . '/' . $dir1 . '/' . $dir2, 0777); !is_dir($dir . '/' . $dir1 . '/' . $dir2 . '/' . $dir3) && mkdir($dir . '/' . $dir1 . '/' . $dir2 . '/' . $dir3, 0777); !file_exists($dir . '/' . $dir1 . '/index.html') && touch($dir . '/' . $dir1 . '/index.html'); !file_exists($dir . '/' . $dir1 . '/' . $dir2 . '/index.html') && touch($dir . '/' . $dir1 . '/' . $dir2 . '/index.html'); !file_exists($dir . '/' . $dir1 . '/' . $dir2 . '/' . $dir3 . '/index.html') && touch($dir . '/' . $dir1 . '/' . $dir2 . '/' . $dir3 . '/index.html'); } function get_avatar_path($uid) { $uid = sprintf("%09d", $uid); $dir1 = substr($uid, 0, 3); $dir2 = substr($uid, 3, 2); $dir3 = substr($uid, 5, 2); return $dir1 . '/' . $dir2 . '/' . $dir3; } $rs = array(); $avatarpath = get_avatar_path($_SESSION['uid']); $avatarrealdir = realpath('.' . DIRECTORY_SEPARATOR . 'avatar_dir' . DIRECTORY_SEPARATOR . $avatarpath); !is_dir($avatarrealdir) && make_avatar_path($_SESSION['uid'], '.' . DIRECTORY_SEPARATOR . 'avatar_dir'); $avatarrealdir = realpath('.' . DIRECTORY_SEPARATOR . 'avatar_dir' . DIRECTORY_SEPARATOR . $avatarpath); include 'Image.class.php'; $filepath = $avatarrealdir . '.' . DIRECTORY_SEPARATOR . $_SESSION['uid'] . '.jpg'; $len = file_put_contents($filepath, file_get_contents("php://input")); Image::thumb($filepath, '', '', 160, 160, false, '_mid'); Image::thumb($filepath, '', '', 74, 74, false, '_min'); unlink($filepath); $rs['status'] = 1; print json_encode($rs);
function get_avatar($user_id, $ext_id, $allow_avatar = true, $size = true, $height = '', $width = '') { global $bb_cfg; if ($size) { // TODO размеры: s, m, l + кеширование } $height = $height != '' ? 'height="' . $height . '"' : ''; $width = $width != '' ? 'width="' . $width . '"' : ''; $user_avatar = '<img src="' . make_url($bb_cfg['avatars']['upload_path'] . $bb_cfg['avatars']['no_avatar']) . '" alt="' . $user_id . '" ' . $height . ' ' . $width . ' />'; if ($user_id == BOT_UID && $bb_cfg['avatars']['bot_avatar']) { $user_avatar = '<img src="' . make_url($bb_cfg['avatars']['upload_path'] . $bb_cfg['avatars']['bot_avatar']) . '" alt="' . $user_id . '" ' . $height . ' ' . $width . ' />'; } else { if ($allow_avatar && $ext_id) { if (file_exists(get_avatar_path($user_id, $ext_id))) { $user_avatar = '<img src="' . make_url(get_avatar_path($user_id, $ext_id)) . '" alt="' . $user_id . '" ' . $height . ' ' . $width . ' />'; } } } return $user_avatar; }