方法1、清理
A> 清理您的服务器磁盘或虚拟空间。满状态的磁盘空间会出现前台提交表单成功但附件没有上传的现象。通常上传的附件大小显示为 0。
B> 清理系统临时目录。
Ø 在 php.ini 中没有设置上传临时目录的情况下,系统会将上传到服务器的文件放在系统的临时目录里(Windows 服务器的系统临时目录是 c:/Windows/TEMP;Linux 的系统临时目录是/tmp),这个目录满了,上传文件就会失败。
Ø 在 php.ini 中,可以通过 upload_tmp_dir 的值,来设定通过PHP程序上传的文件的临时目录。清空该目录。
方法2、附件目录继承写权限
上传附件要求附件目录有写权限,否则上传失败。
A> 如果服务器是 Linux 主机,请将附件目录的权限设置为 777,并将权限继承到附件目录的下级目录(详细);
B> 如果服务器是 Windows 主机,请设置附件目录 IIS 来宾账户(或者运行这个站点的 IIS 账号)写权限,并继承到附件目录的下级目录。特别情况下,需要加设临时目录的IIS来宾账号(或运行IIS的账号)对系统临时目录有写权限;
C> 咨询空间供应商。有些空间限制了目录属性,导致在附件目录下建立子目录时失败
方法3、确定上传的附件大小
服务器允许上传的附件大小设置点php.ini/upload_max_filesize,默认为2M
服务器允许提交表单的大小设置点php.ini/post_max_size,默认为8M
如果上传的附件和表单超过了这两个参数设置的大小,就会出现上传附件不成功的情况。这时,需要适当改大参数的值(如果上传的附件超过 6M,建议使用 ftp 或者其他方式上传),然后重新启动一下 web 服务器软件。
另外,虚拟主机一般不支持大于2M的附件上传。所以虚拟机下也建议使用FTP工具。
方法4、修改Apache配置文件
在使用Apache的情况下,指定配置文件里的 open_basedir 参数可以限制 Apache 能够访问的目录。如果指定了这个参数,可能导致上传附件不成功。此时,将系统的临时目录或者 php.ini 中 upload_tmp_dir 参数设置的目录、附件目录添加到 open_basedir 设置中或者将这个参数注释掉(慎用),然后重新启动 Apache 。
新闻热点
疑难解答
图片精选