为什么我的dedecms上传文件时却出现这样的

为什么我的dedecms上传文件时却出现这样的,第1张

可能有两个原因

1、格式错误。

一般来说网页上使用的是RGB颜色的jpg、png 或者 索引颜色的gif、png,不支持其他颜色类型如CMYK等颜色模式的,甚至对RGB格式的BMP支持的也不好。dedeCMS的上传组件报错的常见原因就是 颜色模式不对, 或者大小超过限制, 现在的错误,看上去好像是颜色模式不对。

2、服务器问题

服务器的上传组件不正常,也可能造成这样的错误。

找到include目录下面的userloginclassphp文件,用代码编辑器将它打开,在第二行session_start();前加上以下代码:

if (isset($_POST["PHPSESSID"]))

{

session_id($_POST["PHPSESSID"]);

} else if

(isset($_GET["PHPSESSID"])) {

session_id($_GET["PHPSESSID"]);

}

把文件保存,传上去覆盖即可

使用DEDECMS织梦57系统,在后台发表文章直接上传提示”缺少图像源文件地址”后来修改 /include/uploadsafeincphp 第45行

$imtypes = array 改成 $imgtypes = array缓存更新以后上传不在提示”缺少图像源文件地址”的问题

重要提示:

1、不能正常上传,也可能是由于后台链接的域名地址和网站的设置的域名地址不符,最常见的就是多了www,或少了www

解决方法很简单:访问后台的地址时,需要和网站设置域名保持一直就行(带www或者不带www,取决于你后台设置的域名,)

2、也可能是服务器环境phpini设置问题(如果是虚拟主机空间请联系空间商客服):

步骤:1。在安装PHP环境的目录下面,找到 phpini文件。

2 打开phpini ,查找upload_tmp_dir ,把这个词前面的“;”号去掉,使其生效,然后在“=”号后面加上临时文件夹的目录,比如: c:/windows/temp,这个可以自设。

3在这个文件夹的安全属性里添加 "everyone"用户,赋予读写权限

不能上传成功的原因大概有以下几种:

1、目录上传权限不够。

2、程序本身漏洞导致,或程序不完整导致。

3、操作系统问题。

检测目录权限

当 提示上传失败的时候,我首先检测的是文件权限是否足够。经过检测,文件夹的权限是755表示已经足够,并且已经重新创建了文件夹并赋予最高权限,依然 没有解决该问题,接着检测用户组权限是否足够,通过检测也没有发现任何的问题,因此文件夹权限导致不能正常上传的可能性被排除。

网站程序完整性

接着检测网站程序的完整性,发现十多个网站都不能正常上传,于是排除了网站程序完整性导致上传失败的可能性。

操作系统问题

于是检测 WEB NGINX 服务器,将上传文件夹的可执行权限开放,但任然不能成功上传。此时,忽然想起了之前配置过 phpini 配置文 档,将 open_basedir 配置成了网站程序所在根目录 /htdocs,于是将该行代码注释掉,之后便成功的上传了,问题被解决掉。但是, 这样做放弃了安全性,有些舍不得。

通过以下方法,不仅让安全性提高,也解决了上传失败的问题:

phpini 中的open_basedir 表示:php程序执行限制在了指定的目录中,这样可以限制入侵者继续提权到操作系统,安全性有更一步的保障。其 中 upload_tmp_dir 表示的是文件上传临时目录,如果设置了 open_basedir 参数,那么 upload_tmp_dir 必须 配置,否则文件上传将不能成功。

总结:遇到不能上传,表示相当棘手。需要从上传的类型、的尺寸、文件夹权限、程序完整性到最后 的系统环境一一分析,遇到问题不要焦急,相信经过透彻的分析与测试,问题总会被解决掉。本文最终解决方法就有两个,注释 open_basedir 该行 代码就能解决问题,如果配置了 open_basedir 那么需要设定文件上传临时目录,最后笔者将 upload_tmp_dir 设定 为 /tmp 后,就可以成功上传了!

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 为什么我的dedecms上传文件时却出现这样的

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情