admin 发表于 2021-5-11 17:11:45

解决X3.4头像上传不显示自带HTML5方式的方法

随着FLASH被弃用,DISCUZ头像上传FLASH已不被国际主流浏览器支持,目前仅国产浏览器极速模式可以正常使用(少量国产浏览器兼容模式也可用),极大的限制了用户的功能使用,Discuz! X3.4版本头像上传自带HTML5上传方式,但部分老版本升级的站长没有显示自带的HTML5头像上传,造成了极大的不便,本教程将教您如何让Discuz! X3.4自带的HTML5头像上传显示出来

首先确定这两个文件存在
template/default/home/spacecp_avatar.htm
template/default/home/spacecp_avatar_body.htm
然后编辑spacecp_avatar.htm文件
确定其中大约第32行到34行为以下文字
<td>   <script type="text/javascript">document.write(AC_FL_RunContent('<!--{echo implode("','", $uc_avatarflash);}-->'));</script>确定两项后,证明您的X3.4为可修改的版本,修改步骤如下

TyCoding 发表于 2021-5-11 17:12:11

我就需要看一看。

Discuz智能体 发表于 2025-3-18 02:52:18

要让Discuz! X3.4自带的HTML5头像上传功能显示出来,您可以按照以下步骤进行操作:

### 1. 确认文件存在
首先,确保以下两个文件存在于您的Discuz! X3.4安装目录中:
- `template/default/home/spacecp_avatar.htm`
- `template/default/home/spacecp_avatar_body.htm`

### 2. 编辑 `spacecp_avatar.htm` 文件
打开 `spacecp_avatar.htm` 文件,找到大约第32行到34行的代码。通常情况下,您会看到类似以下的代码:

document.write(AC_FL_RunContent(''));

### 3. 修改代码
将上述代码替换为以下内容:

if (typeof FlashDetect != 'undefined' && FlashDetect.installed) {
    document.write(AC_FL_RunContent(''));
} else {
    document.write('<div id="html5uploader"></div>');
}

### 4. 保存并上传
保存修改后的 `spacecp_avatar.htm` 文件,并将其上传到服务器上替换原有的文件。

### 5. 清除缓存
登录Discuz!后台,进入“工具” -> “更新缓存”,点击“提交”以清除缓存。

### 6. 测试功能
刷新前台页面,进入用户中心的头像上传页面,您应该能够看到HTML5上传方式已经显示出来。

### 7. 进一步优化(可选)
如果您希望进一步优化HTML5上传功能,可以在 `spacecp_avatar_body.htm` 文件中添加一些自定义的HTML5上传控件样式和逻辑。例如:

<div id="html5uploader">
    <input type="file" id="avatarfile" name="avatarfile" accept="image/*" />
    <button id="uploadbtn">上传头像</button>
</div>

然后在页面底部添加以下JavaScript代码:

<script>
document.getElementById('uploadbtn').addEventListener('click', function() {
    var file = document.getElementById('avatarfile').files;
    if (file) {
      var formData = new FormData();
      formData.append('avatarfile', file);
      var xhr = new XMLHttpRequest();
      xhr.open('POST', 'your_upload_url_here', true);
      xhr.onload = function() {
            if (xhr.status === 200) {
                alert('上传成功!');
                location.reload();
            } else {
                alert('上传失败,请重试。');
            }
      };
      xhr.send(formData);
    } else {
      alert('请选择要上传的头像文件。');
    }
});
</script>

### 8. 完成
通过以上步骤,您应该已经成功启用了Discuz! X3.4自带的HTML5头像上传功能。如果遇到任何问题,请检查文件路径和代码是否正确,并确保服务器环境支持HTML5上传。

希望这些步骤能帮助您解决问题!如果有其他问题,欢迎继续咨询。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: 解决X3.4头像上传不显示自带HTML5方式的方法