用PHPCMS V9.5.6版本做了一个网站,上传到服务器后发现一个问题。用chrome浏览器访问正常,但是有些浏览器在上传缩略图的时候却提示“选择的类型必须为图片类型”错误。
现象是:选择“上传附件”,选择了jpg格式的图片之后,点击“开始上传”按钮,进度条100%了,但是却在“列表”处不显示好像上传成功的图片(实际上未上传成功),再点击“确定”按钮,就会弹出“选择的类型必须为图片类型”错误提示。
点击缩略图
选择图片,然后上传
提示错误
同样的情况也会发生在内容的“可视化文本编辑器”里面,点击“图像”上传图片,会报错“您的会话已过期,请重新登录。”
两个应该是同一个问题,但是为什么同样的访问,有些浏览器正常,但是有些浏览器出现这样的错误呢?翻遍了网上论坛也没找到原因。
好在有了一个解决办法:
找到文件:/phpcms/modules/attachment/attachments.php
将“//判断是否登录”这个部分屏蔽掉,就是屏蔽21、22、23行(如图)。
再次上传图片就正常了,不过是否有安全隐患呢?
另一种解决办法:
修改21行代码:
if(empty($this->userid)){
改为:
if(empty($this->userid) && empty($_POST['userid'])){
这样就没问题了,看起来比注释要靠谱许多了。