Board logo

标题: 外挂了HTML5插件去替代FLASH上传组件,恢复了头像的上传功能 [打印本页]

作者: Admin    时间: 2026-5-6 10:01     标题: 外挂了HTML5插件去替代FLASH上传组件,恢复了头像的上传功能

[attach]2126[/attach]
3 g- l& W# k% w. eFLASH最终还是没能跟上时代的步伐,被各大浏览器抛弃,我们这老破旧论坛连头像也上传不了,
& D8 k! r" ?$ B" ^  N* s花了一个星期反编译了Discuz7.2的FLASH头像上传逻辑,! e% P. `" _- Y  p
外挂了一个HTML5的插件去替代原来的FLASH,终于恢复了头像的上传,/ P$ U6 j) u. {$ C* o# |( K, _
虽然界面上还有些粗糙,但起嘛能用了,
- e7 G$ H$ R% F如果各位发现头像上传有什么问题可以跟帖留言,- G) m! @) V! J
我再优化一下. g$ u4 |7 z, z" |

9 E8 P( }/ l/ R7 q0 u% W+ Q1 |  \( }6 w6 M! k/ F# x8 C0 u3 d
( q: z' I) w4 {# `8 J% p, p( m$ K$ \, ZDZ7.2 HTML5 头像插件 v1.0  2026-05-05 浪
2 t9 i. j/ y1 H==============================2 t; I1 J; r% i" g7 I  F
8 m; w4 P! A2 x, y* D; L$ [% g
【适用环境】3 q  P, I) k' O! w5 G0 ^5 |
- Discuz! 7.2 UTF-81 p  a6 `& b; J9 W. \4 f- O& j/ A
- UCenter 1.5* k7 x7 @4 z7 A7 B' `8 H" b8 V
- PHP 5.6
; T% G( c( M3 l6 w: F: S4 P
! C7 k4 b& Y8 b1 V" q2 a【安装方法】
+ J$ V1 v8 y) K" L* J1. 将 upload 目录下的文件,按路径覆盖到你网站根目录
! }9 z  q8 R2 f& N6 j# G3 N9 O* q6 }
$ Q! K- c5 T6 t8 \9 k" b/ J' l2. 特别注意:2 c" _  h# C3 o* C% [' ^3 C
   本修改仅限使用默认模板,路径为:/templates/default/memcp_profile.htm
8 R3 q+ j. X* J3 b   (如果你使用了其它模板,请自行替换文件标注部分代码。)
* z, B2 Y. w: V4 i$ q* K: }2 O8 [, I: n
3. 确保目录权限:# H7 r/ j5 W  u$ S9 K; H
   chmod -R 755 uc_server/data/avatar8 p6 P" P7 a3 y* N' Z& t

4 P" V/ F: {5 |. y% m4 D, s, X1 r4. 进入:6 h* M8 j8 {0 Z3 Q! B2 L7 O
   个人中心 → 个人资料 → 头像
1 i* W, L5 s: R0 n8 b$ d  f   即可使用 HTML5 上传
  u% x! H" ^' o* C+ {" y- W6 x+ @/ q% }8 |  U8 p9 D
【说明】
# E5 N4 F/ q6 N' {! ~8 h- 会直接替换 Flash 头像入口
' \. V( D7 M  n* I2 F- 无需安装、无需后台开启
; |# X0 M  e- H4 J: e* u- 不影响 UCenter 原有逻辑
3 j9 t5 ^1 j& D" u% q, @: f( `' Q- 仅新增一个htnl5上传组件5 i  ~$ L" C) R# Y9 a4 W8 B8 x/ x
' p1 U7 ]/ L. r: ~: I8 V. a
& M4 E. h9 c. B) v

作者: Admin    时间: 2026-5-6 10:22

打包放这留档,免得自己哪天老人痴呆忘记了
作者: 情系根子    时间: 2026-5-10 23:39

更新V1.1版本,增加图片裁剪功能
作者: longe    时间: 2026-5-13 22:49     标题: 修改帖子标题80字符限制,改为120字符!

  1. dz7.2在发新帖的时候 ,新话题标题默认为80字字符,这就可能无法满足一些朋友的需求。我这里有一个办法可以解决,但是通过修改以后,标题字数最多为80个字。其中一个汉字算一个字,一个字母也算一个字,一个数字也算一个字。

  2. 要修改的文件有:
  3. 1、include\post.func.php  中有一处  
  4. if(strlen($subject) > 80) {

  5. 2、include\js\post.js         中有两处   
  6. } else if(mb_strlen(theform.subject.value) > 80) {   
  7.   和           
  8. showDialog('您的标题超过 80 个字符的限制。');

  9. 3、include\js\viewthread.js 有两处
  10. } else if(mb_strlen(theform.subject.value) > 80) {

  11. s = '您的标题超过 80 个字符的限制

  12. 4、modcp\editpost.inc.php    中有一处
  13. if(strlen($subjectnew) > 80) {

  14. 5,数据库执行sql语句:
  15. ALTER TABLE `cdb_posts` CHANGE `subject` `subject` char(120) NOT NULL;,

  16. 将以上的 80 改为 较大的数字(比如120)即可!然后更新缓存!
复制代码

作者: longe    时间: 2026-5-18 11:38     标题: 修改discuzcode.func.php里面的多媒体相关代码为HTML5控件方案

禁用原BBcode [flash]& s) T8 y: w# J3 a7 r% p
  1. if($allowmediacode && strpos($msglower, '[/flash]') !== FALSE) {        $message = preg_replace("/\[flash\]\s*([^\[\<\r\n]+?)\s*\[\/flash\]/is",                "<script type=\"text/javascript\" reload=\"1\">document.write(AC_FL_RunContent(...));</script>",                $message);}
复制代码
9 k9 A& g+ d" ~& z* p) F; p
改成直接显示链接地址:( f% X# v0 e  X& r( K( R& z
  1. if($allowmediacode && strpos($msglower, '[/flash]') !== FALSE) {
  2.         $message = preg_replace(
  3.                 "/\[flash\]\s*([^\[\<\r\n]+?)\s*\[\/flash\]/is",
  4.                 '<a href="$1" target="_blank" rel="noopener noreferrer">$1</a>',
  5.                 $message
  6.         );
  7. }
复制代码
9 @9 X; \$ |# r9 U
( b' m' V5 X% N# \5 J% C
顺便禁用 [swf]:0 T4 ~7 M3 n4 o# X5 k, e3 Z
  1. if($parsetype != 1 && strpos($msglower, '[swf]') !== FALSE) {
  2.         $message = preg_replace("/\[swf\]\s*([^\[\<\r\n]+?)\s*\[\/swf\]/ies",
  3.                 "bbcodeurl('\\1', ' <img src=\"images/attachicons/flash.gif\" ... Flash: %s</a> ')",
  4.                 $message);
  5. }
复制代码
9 Q7 q6 m6 ?; |5 I
替换为链接:) s; I3 C# M) S, V  ?9 t9 h
  1. if($parsetype != 1 && strpos($msglower, '[swf]') !== FALSE) {
  2.         $message = preg_replace(
  3.                 "/\[swf\]\s*([^\[\<\r\n]+?)\s*\[\/swf\]/ies",
  4.                 "'<a href=\"$1\" target=\"_blank\" rel=\"noopener noreferrer\">$1</a>'",
  5.                 $message
  6.         );
  7. }
复制代码

% [9 G7 l5 C$ R
* I% t2 y5 ~: }& D% {原代码 parseaudio()(MP3音频等):
  1. function parseaudio($url, $width = 400, $autostart = 0) {
  2.         ...
  3.         <object classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6">
  4.         ...
  5. }
复制代码
✅ 换成 HTML5
  1. function parseaudio($url, $width = 400, $autostart = 0) {
  2.         $url = str_replace('\\"', '"', $url);
  3.         return '<audio controls style="width:100%;max-width:'.$width.'px;border-radius:6px;" src="'.$url.'"></audio>';
  4. }
复制代码
原FALSH多媒体代码:
  1. function parsemedia($params, $url) {
  2.         ...
  3.         AC_FL_RunContent(...)
  4. }
复制代码
✅ 改成 HTML5 优先:
  1. function parsemedia($params, $url) {
  2.         $params = explode(',', $params);
  3.         $width  = isset($params[1]) ? min(intval($params[1]), 800) : 400;
  4.         $height = isset($params[2]) ? min(intval($params[2]), 600) : 300;
  5.         $url = str_replace(array('<', '>'), '', str_replace('\\"', '"', $url));

  6.         $ext = strtolower(substr(strrchr($url, '.'), 1, 5));

  7.         if(in_array($ext, array('mp3','wav','ogg'))) {
  8.                 return '<audio controls style="width:100%;max-width:'.$width.'px;">'.
  9.                        '<source src="'.$url.'" type="audio/mpeg"></audio>';
  10.         }
  11.         if(in_array($ext, array('mp4','webm'))) {
  12.                 return '<video controls style="width:100%;max-width:'.$width.'px;">'.
  13.                        '<source src="'.$url.'" type="video/mp4"></video>';
  14.         }
  15.         // 其他一律当链接
  16.         return '<a href="'.$url.'" target="_blank" rel="noopener noreferrer">'.$url.'</a>';
  17. }
复制代码

作者: longe    时间: 2026-5-18 11:44

Discuz 7.2 所有视频 / 音频都在用 Flash(ActiveX / AC_FL_RunContent)作为媒介播放。




欢迎光临 【情系根子】论坛 (http://bbs.525247.net/) Powered by Discuz! 7.2