返回旧版| 微信建站| 我要建站 | 建站学习 | 加入收藏
DEDECMS当前位置:首页 > cms教程 > 综合cms > DEDECMS > 正文

dedecms其他模块上传图片有汉字时候无法显示图片问题

发布时间:2019-06-28 15:28:30   来源:   点击:
很久没有研究织梦系统了,现在反过来看一下织梦系统代码,感觉确实不怎么地

最近根据友情链接设计新模块的时候,发现友情链接上传图片,能上传成功但是前端无法显示,原因就是友情链接的图片上传到了uploads/flink文件夹下,而官方为了安全会对link这个词过滤,造成flink被转成了fli<x>nk,所以造成图片无法读取,这就让人很尴尬了,自己把自己给拦住了。
修复方法
1、直接把flink文件名称改了改成userup
(1)dede/friendlink_add.php 第27行
  1. $imgurl = $cfg_medias_dir."/flink"
(2)/dede/friendlink_edit.php   61-62行
  1. $request->MoveUploadFile('logoimg', DEDEROOT.'/uploads/flink/'.$request->GetFileInfo('logoimg''name'));$logo = $cfg_cmspath.'/uploads/flink/'.$request->GetFileInfo('logoimg''name'); 
把上面的flink改成其他名字

2、修改 /include/datalistcp.class.php去掉安全过滤

  1. $replacement = substr($ra[$i], 0, 2).'<x>'.substr($ra[$i], 2); 
改成:
  1. $replacement = substr($ra[$i], 0, 2).substr($ra[$i], 2); 

但是这也仅仅只是对路径flink的处理,如果我们上传的图片中包含中文的时候,这些模块是不进行重命名而是直接存入数据库的,这就会造成上传的图片的中文变成乱码,为了保险需要对图片名称重命名,
参考代码:
  1. $logoimg = $request->Upfile('logoimg'''); 
  2. $ex = $request->GetShortname('logoimg');//获取后缀 
  3. $randname = date("Y").date("m").date("d").date("H").date("i").date("s").rand(100, 999).".".$ex;//随机命名 
  4.     if(!empty($logoimg)){ 
  5.         $request->MoveUploadFile('logoimg', DEDEROOT.'/uploads/userup/'.$randname); 
  6.         $logo = $cfg_cmspath.'/uploads/userup/'.$randname; 
  7.     } 
这样既可以对图片重命名,再也不用担心图片含有中文变成乱码了


版权所有:郑州腾石网络科技有限公司 备案信息:豫ICP备18019117号
站长QQ:2863868475 业务合作咨询:15137100750(同微信)
本站所有投放的广告是有其他网站提供,不代表本站立场,同时网站首页广告位对外出租详情咨询本站站长!同时欢迎广大站长加入个人建站团队
  • 建站客服
  • CMS仿站
  • CMS学习
  • 技术交流群:336572814