我正在使用CKFinder(v2.1)来管理图像库,我现在正在添加对SVG图像的支持。编辑配置文件后,一切正常,前几个测试文件。现在我偶尔会收到此错误消息,“由于安全原因,上传已取消。该文件包含类似HTML的数据。”它仅适用于某些SVG文件,而不是全部。我查看了一个文件的来源,该文件试图与失败的文件源进行比较,但无法找到任何可能导致问题的文件。 SO和谷歌的搜索结果并没有真正发挥作用。只是想知道是否有其他人遇到过这个问题,如果是这样,你是如何解决的?
答案 0 :(得分:3)
SVG是一种基于XML的文件格式,带有可选的压缩功能。 在未压缩的情况下,它可能包含一些与HTML相同的标记。 默认情况下,CKFinder会拒绝包含前1024字节中HTML代码的文件,并且不会在配置中列入白名单。
要解决您的问题,请在configuration file(ASP.NET连接器)中为允许的HTML扩展添加SVG扩展名:
HtmlExtensions = new string[] { "html", "htm", "xml", "js", "svg" };
对于PHP连接器,configuration选项可能如下所示:
$config['HtmlExtensions'] = array('html', 'htm', 'xml', 'js', 'svg');
如果您使用其他连接器,您可以在documentation中找到如何将SVG扩展名添加到允许的HTML扩展程序。