在使用DedecmsCMS的过程中,许多用户可能会遇到友情链接图片无法正常显示的问题。本文将详细介绍这一问题的解决方法,帮助您快速修复。
当DedecmsCMS默认设置下,友情连接上传的图片在后台和前台均不能正常显示。进一步检查代码后发现,图片路径存在问题。原本应为/upload/flink/的路径,却显示成了/upload/fli<x>nk/,导致图片在后台和前台都无法正常展示。
问题原因:
此问题的根本原因是/include/datalistcp.class.php文件中包含了防止XSS漏洞攻击的代码。这段代码中包含了一个“link”字符串,因此自动插入了<x>,从而影响了图片路径的正确性。
解决方法:
方法一:
打开/include/datalistcp.class.php文件,并搜索以下代码:
$replacement = substr($ra[$i], 0, 2).'<x>'.substr($ra[$i], 2);
将其修改为:
$replacement = substr($ra[$i], 0, 2)."".substr($ra[$i], 2);
完成上述修改后,就不会再出现flin<x>k这样的错误路径问题。注意,在更改前请务必备份datalistcp.class.php文件。
方法二:
如果您担心直接修改系统文件可能带来的安全风险,可以选择更改友情链接图片的存放目录。具体操作如下:
1. 打开根目录下的/dede/friendlink_add.php文件,找到第27行左右的代码:
$imgurl = $cfg_medias_dir."/flink";
2. 打开根目录下的/dede/friendlink_edit.php文件,找到第61-62行:
$request->MoveUploadFile('logoimg', DEDEROOT.'/d/file/uploads/flink/'.$request->GetFileInfo('logoimg', 'name'));$logo = $cfg_cmspath.'/d/file/uploads/flink/'.$request->GetFileInfo('logoimg', 'name');
3. 将以上代码中的“flink”替换为其他任意名称(为了安全起见,请保存原始文件)。
出于安全性考虑,建议采用方法二,更改友情链接图片的存放路径。同时,在进行任何系统文件修改之前,请确保已备份相关文件。
按照上述步骤操作后,DedecmsCMS友情链接后台即可恢复正常显示图片的功能。