当前位置:Gxlcms > PHP教程 > php文件上传有关问题

php文件上传有关问题

时间:2021-07-01 10:21:17 帮助过:6人阅读

php文件上传问题
header('Content-Type: text/html; charset=GBK');
echo '
';
print_r($_FILES);
echo '
';
echo '
';
if ($_FILES['userfile']['error'] > 0) {
switch ($_FILES['userfile']['error']) {
case 1: echo "";
break;
case 2: echo "";
break;
case 3: echo "";
break;
case 4: echo "";
break;
}
exit;
}
if(is_uploaded_file($_FILES['userfile']['tmp_name']))
{
if(!move_uploaded_file($_FILES['userfile']['tmp_name'],'uploads/'.$_FILES['userfile']['name']))
{
echo "";
exit;
}

}else {
echo "";
exit;
}
echo "";
?>为什么上传小文件就能正确上传,并且能显示$_FILES的全部信息,但是上传大文件时候,不会显示S_FILES信息,打印出是“Array()”,而且能绕过if ($_FILES['userfile']['error'] > 0)语句,直接提示'临时文件夹找不到上传的文件'的信息,请高手解答为什么会出现这个现象? PHP

分享到:


------解决方案--------------------
你的php.ini 中 max_file_uploads post_max_size memory_limit 这几个参数的值是多少,你上传的文件的大小不能超过这个值。
------解决方案--------------------
就和楼上说的一样,你上传的文件超过了INI里最大文件的大小限制,这种情况下文件时传不上去的,也就是$_FILES['name']会是空数组,当然$_FILES['name']['error']就不会大于0,就直接跳到后面去了

最好的解决办法是切割上传,不要一次性全部上传,可以用ajax来分割文件
------解决方案--------------------
没有设置 post_max_size ,则它就会用默认值8M,你的大文件肯定超过了8M,所以$_FILES就会为空。

人气教程排行