You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
3.0 KiB
86 lines
3.0 KiB
<?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');
|
|
}
|
|
|
|
Hook::listen('check_login');
|
|
|
|
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' => '头像保存错误,请稍候重试')));
|
|
|
|
showmessage('do_success', 'user.php?mod=profile&op=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 = C::t('user')->get_user_by_uid($_G['uid']);
|
|
|
|
if (empty($user['avatarstatus']) && dzz_check_avatar($_G['uid'], 'middle')) {
|
|
C::t('user')->update($_G['uid'], array('avatarstatus' => '1'));
|
|
}
|
|
$navtitle = lang('Modify_the_picture');
|
|
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;
|
|
}
|
|
}
|