Discuz!x3.3 头像上传关闭Flash 支持H5上传
Discuz!x3.4默认就支持H5头像上传,但是很多老站还在用x3.3,特别是很多二次开发过的大型站点,头像上传还在用falsh模式或者用第三方插件,现提供一个通用解决方案,可以让x3.3支持h5头像上传方式:1.备份模板目录,覆盖本头像h5上传补充包,解压到网站根目录。
链接:补充包下载地址
提取码:4tlD
2.修改source\language\home\lang_template.php
再最后面加入一行:
'setting_my_new_avatar_old' => '如无法正常上传头像,请点此处切换为 Flash 方式上传',
3.修改uc_server\control\user.php中的onrectavatar函数
@header("Pragma: no-cache");下面加入如下代码
if(getgpc('base64', 'G')){
header("Content-type: text/html; charset=utf-8");
}else{
header("Content-type: application/xml; charset=utf-8");
}
4.替换
if($success) {
return '<?xml version="1.0" ?><root><face success="1"/></root>';
} else {
return '<?xml version="1.0" ?><root><face success="0"/></root>';
}
为:
if(getgpc('base64', 'G')){
if($success) {
return "<script>window.parent.postMessage('success','*');</script>";
} else {
return "<script>window.parent.postMessage('failure','*');</script>";
}
}else{
if($success) {
return '<?xml version="1.0" ?><root><face success="1"/></root>';
} else {
return '<?xml version="1.0" ?><root><face success="0"/></root>';
}
}
5.flashdata_decode函数替换
$r = '';
if(getgpc('base64', 'G')){
$r = base64_decode($s);
}else{
$l = strlen($s);
for($i=0; $i<$l; $i=$i+2) {
$k1 = ord($s[$i]) - 48;
$k1 -= $k1 > 9 ? 7 : 0;
$k2 = ord($s[$i+1]) - 48;
$k2 -= $k2 > 9 ? 7 : 0;
$r .= chr($k1 << 4 | $k2);
}
}
return $r;
同名文件替换下,更新缓存
页:
[1]