QQ咨询 官方微信

添加微信好友

官方小程序

百度小程序

微信小程序

头条小程序

关于我们

DEDECMS

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

 admin  2019-06-28 15:40:08
很久没有研究织梦系统了,现在反过来看一下织梦系统代码,感觉确实不怎么地

最近根据友情链接设计新模块的时候,发现友情链接上传图片,能上传成功但是前端无法显示,原因就是友情链接的图片上传到了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.     } 
这样既可以对图片重命名,再也不用担心图片含有中文变成乱码了


¥ 打赏
×
如果您觉得文章帮助了您就打赏一下吧
非常感谢你的打赏,我们将继续分享更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

本文《dedecms其他模块上传图片有汉字时候无法显示图片问题》发布于石头博客文章,作者:admin,如若转载,请注明出处:https://www.pweb123.com/cms/dede/774.html,否则禁止转载,谢谢配合!

文章点评

我来说两句 已有0条评论
点击图片更换

添加微信好友

添加微信好友

微信小程序

百度小程序