有站长反馈上传失败,提示错误编码为6。这个原因是典型的目录权限问题。
对于某些主机商权限没有设置好就开始卖空间,表示很无语。当然还有部分网友初次搭建环境也容易碰到这个问题。
看下PHP手册里给出的上传错误列表:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
UPLOAD_ERR_OK
其值为 0,没有错误发生,文件上传成功。
UPLOAD_ERR_INI_SIZE
其值为 1,上传的文件超过了php.ini 中 upload_max_filesize 选项限制的值。
UPLOAD_ERR_FORM_SIZE
其值为 2,上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。
UPLOAD_ERR_PARTIAL
其值为 3,文件只有部分被上传。
UPLOAD_ERR_NO_FILE
其值为 4,没有文件被上传。
<b>UPLOAD_ERR_NO_TMP_DIR</b>
其值为 6,找不到临时文件夹。php 4.3.10 和 php 5.0.3 引进。
UPLOAD_ERR_CANT_WRITE
其值为 7,文件写入失败。php 5.1.0 引进。
|
解决方案:
1. 确认 php.ini 的位置:
Linux 下执行:php -r "phpinfo();"|grep Load
或者执行: php -i|grep php.ini
Windows 下:php -r "phpinfo();"|findstr Load
该方法有一定的问题,得到的结果不一定是apache加载的php.ini,最好的方法是打印phpinfo()信息。通过建立php脚本得到结果。
<?php
phpinfo();
?>
通过虚拟主机访问该页面可以准确知道apache加载的php.ini文件
2. 修改 php.ini 内容,设置 upload_tmp_dir=/tmp ,然后设置 /tmp 为可读写(/tmp 可以为任意目录,windows 下,可以设置为 C:/temp, 这里只是举例), 如果不是你的主机,联系空间商,让空间商设置。
Linux: chmod -R 0777 /tmp
Windows: 设置 C:/temp 目录权限 everyone 可读写。
3. 然后重启web server。
sudo service apache2 restart
原文地址:点击打开链接