我的PHP上传失败了一个error:6
,但我不知道为什么。我检查了一些stackoverflow帖子中描述的所有参数,但没有解决方案。
如你所见,我得到了一个错误6。设置了所有值(TMP_DIR、SYS_TMP_DIR),但不起作用。
Apache用户有权访问服务器上的/tmp
。
是否有我忽略的问题?
require_once '../libs/firephp-core-0.4.0/lib/FirePHPCore/fb.php';
$tmp = getcwd()."/tmp";
ini_set('open_basedir', $tmp);
ini_set('upload_tmp_dir',$tmp);
ob_start();
fb($_FILES, "FILES");
fb(ini_get('open_basedir'), 'OPEN_BASEDIR');
$tmp_dir = ini_get('upload_tmp_dir') ? ini_get('upload_tmp_dir') : sys_get_temp_dir();
fb($tmp_dir, "TMP_DIR");
fb(sys_get_temp_dir(), "SYS-TMP-DIR");
$uploaddir = getcwd()."/uploads/";
$uploadfile = $uploaddir . basename.basename($_FILES['x0']['name']);
fb($uploadfile, 'FILE PATH');
fb(move_uploaded_file($_FILES['x0']['tmp_name'], $uploadfile), "MOVE RESULT");
4条答案
按热度按时间sq1bmfud1#
必须在
php.ini
文件中设置upload_tmp_dir
配置,以便在运行脚本之前可以使用它。当脚本开始运行时,文件已经上传(或在出现错误时不上传)。int_set('upload_tmp_dir',$tmp);
我看到您尝试设置
upload_tmp_dir
,但该语句执行得很晚。转到php.ini
并将其设置为:klr1opcd2#
问题似乎是你的临时变量不能正常工作。在php http://php.net/manual/de/features.file-upload.errors.php的这个文件之后,错误说缺少临时文件夹
ozxc1zmp3#
在我的例子中,我没有将
tmp
目录放在正确的位置。我在根目录中有/tmp/
,但它不是Apache要找的。因此,请检查php.ini
,并确保指定的目录存在,如针对sys_temp_dir
所述。sys_temp_dir /var/www/wms/tmp
cgyqldqp4#
我在XAMPP环境下解决了我的问题
执行此命令以了解您的文件是否正常
the error in php.ini
然后返回一个错误,这就是为什么我找不到我的upload_tmp_dir