<?php
/*
 * @copyright   Leyun internet Technology(Shanghai)Co.,Ltd
 * @license     http://www.dzzoffice.com/licenses/license.txt
 * @package     DzzOffice
 * @link        http://www.dzzoffice.com
 * @author      zyx(zyx@dzz.cc)
 */
if (!defined('IN_DZZ')) {
	exit('Access Denied');
}
if (!$_G['uid']) {
	include template('common/header_reload');
	echo "<script type=\"text/javascript\">";
	echo "try{top._login.logging();win.Close();}catch(e){location.href='user.php?mod=logging';}";
	echo "</script>";
	include  template('common/footer_reload');
	exit();
}

if (submitcheck('avatarsubmit')) {
	if ($_GET['imagedata'])
		$success = upbase64($_GET['imagedata'], $_G['uid']);
	if ($_GET['aid'])
		IO::delete('attach::' . intval($_GET['aid']));
	if ($success)
		exit(json_encode(array('msg' => 'success')));
	else
		exit(json_encode(array('error' => lang('head_save_mistakes'))));
	showmessage('do_success', 'user.php?mod=avatar');
} elseif ($_GET['do'] == 'imageupload') {
	include  libfile('class/uploadhandler');
	$options = array('accept_file_types' => '/\.(gif|jpe?g|png)$/i', 'upload_dir' => $_G['setting']['attachdir'] . 'cache/', 'upload_url' => $_G['setting']['attachurl'] . 'cache/', 'thumbnail' => array('max-width' => 512, 'max-height' => 512));
	$upload_handler = new uploadhandler($options);
	exit();
}
$user = getuserbyuid($_G['uid']);
if (empty($user['avatarstatus']) && dzz_check_avatar($_G['uid'], 'middle')) {
	C::t('user') -> update($_G['uid'], array('avatarstatus' => '1'));
}

include  template("avatar");

function dzz_check_avatar($uid, $size = 'middle', $type = 'virtual') {
	global $_G;
	$url = $_G['siteurl'] . "avatar.php?uid=$uid&size=$size&type=$type&check_file_exists=1";
	$res = dfsockopen($url, 500000, '', '', TRUE, '', 20);
	if ($res == 1) {
		return 1;
	} else {
		return 0;
	}
}

function upBase64($base64Data, $uid) {
	$img = base64_decode(str_replace('data:image/png;base64,', '', $base64Data));
	$temp = getglobal('setting/attachdir') . 'cache/' . random(5) . '.png';
	//移动文件
	if (!(file_put_contents($temp, $img))) {//移动失败
		return false;
	} else {//移动成功,生成3种尺寸头像

		$home = get_home($uid);
		if (!is_dir(DZZ_ROOT . './data/avatar/' . $home)) {
			set_home($uid, DZZ_ROOT . './data/avatar/');
		}
		$bigavatarfile = DZZ_ROOT . './data/avatar/' . get_avatar($uid, 'big');
		$middleavatarfile = DZZ_ROOT . './data/avatar/' . get_avatar($uid, 'middle');
		$smallavatarfile = DZZ_ROOT . './data/avatar/' . get_avatar($uid, 'small');
		include_once  libfile('class/image');
		$image = new image();
		$success = 0;
		if ($thumb = $image -> Thumb($temp, $bigavatarfile, 200, 200, 1)) {
			$success++;
		}
		if ($thumb = $image -> Thumb($temp, $middleavatarfile, 120, 120, 1)) {
			$success++;
		}
		if ($thumb = $image -> Thumb($temp, $smallavatarfile, 48, 48, 1)) {
			$success++;
		}
		if ($success > 2) {
			C::t('user') -> update($uid, array('avatarstatus' => '1'));
		}
		@unlink($temp);
		return $success;
	}
}
?>
