无限星辰工作室-客户无限互联网动力之源

标题: Discuz!x3.3 头像上传关闭Flash 支持H5上传 [打印本页]

作者: crx349    时间: 2022-12-10 20:39
标题: 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

再最后面加入一行:
  1. 'setting_my_new_avatar_old' => '如无法正常上传头像,请点此处切换为 Flash 方式上传',
复制代码


3.修改uc_server\control\user.php中的onrectavatar函数
  1. @header("Pragma: no-cache");
复制代码
下面加入如下代码
  1. if(getgpc('base64', 'G')){
  2.    header("Content-type: text/html; charset=utf-8");
  3. }else{
  4.    header("Content-type: application/xml; charset=utf-8");
  5. }
复制代码


4.替换
  1. if($success) {
  2.    return '<?xml version="1.0" ?><root><face success="1"/></root>';
  3. } else {
  4.    return '<?xml version="1.0" ?><root><face success="0"/></root>';
  5. }
复制代码

为:
  1. if(getgpc('base64', 'G')){
  2.    if($success) {
  3.       return "<script>window.parent.postMessage('success','*');</script>";
  4.    } else {
  5.       return "<script>window.parent.postMessage('failure','*');</script>";
  6.    }
  7. }else{
  8.    if($success) {
  9.       return '<?xml version="1.0" ?><root><face success="1"/></root>';
  10.    } else {
  11.       return '<?xml version="1.0" ?><root><face success="0"/></root>';
  12.    }
  13. }
复制代码

5.flashdata_decode函数替换
  1. $r = '';
  2. if(getgpc('base64', 'G')){
  3.    $r = base64_decode($s);
  4. }else{
  5.    $l = strlen($s);
  6.    for($i=0; $i<$l; $i=$i+2) {
  7.       $k1 = ord($s[$i]) - 48;
  8.       $k1 -= $k1 > 9 ? 7 : 0;
  9.       $k2 = ord($s[$i+1]) - 48;
  10.       $k2 -= $k2 > 9 ? 7 : 0;
  11.       $r .= chr($k1 << 4 | $k2);
  12.    }
  13. }
  14. return $r;
复制代码


同名文件替换下,更新缓存




欢迎光临 无限星辰工作室-客户无限互联网动力之源 (https://www.xmspace.net/) Powered by Discuz! X3.4