php上传问题 在上传不成功的情况下,当上传文件大于10M(大概数)时就会报错,而不是根据程序提示,

在上传不成功的情况下,当上传文件大于10M(大概数)时就会报错,而不是根据程序提示,但小一点的文件如2M的就会按程序提示错误。求解
---------------------------html---------------------------------
<html>
<head>
<title>upload</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
shopname:<input type="tetx" name="shopname"><br>
price:<input type="tetx" name="price"><br>
shopnum:<input type="tetx" name="num"><br>
<input type="hidden" name="MAX_FILE_SIZE" value="20000000">
shopnum:<input type="file" name="file"><br>

<input type="submit" name="sub"><br>

</form>
</body>
</html>

------------------------------------------------php------------------------------------------
if($_FILES["file"]["error"]>0){
switch($_FILES["file"]["error"]){
case 1:
echo "上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。 ";
break;
case 2:
echo "上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。 ";
break;
case 3:
echo "文件只有部分被上传。 ";
break;
case 4:
echo "没有文件被上传。";
break;
default:
echo "未知错误";
}
exit;
}
----------------------------错误---------------------------

( ! ) Notice: Undefined index: file in C:\wamp\www\j_filesystem\upload.php on line 8

Call Stack

#
Time
Memory
Function
Location

1 0.0036 251688 {main}( ) ..\upload.php:0

你说的10M应该是php.ini里设置的上传文件大小限制,而你这个switch判断是基于表单上传文件大小来判断的,两者毫无相关!
一、超过10M,在php底层处理请求时就直接报错了,根本执行不到你switch的地方,所以报错是非预期的
二、超过2M,php能正常执行,所以会按照你switch来报错

这里,你要搞清楚php的上传文件大小限制跟form表单上传文件大小限制的关系追问

但是我php.ini里面设置的是
file_uploads = on
upload_max_filesize= 20M
post_max_size = 20M

please!!!!!!!!!!

追答

我好像记得php要改三四个地方,具体你再搜搜哪几处吧,你没改全

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网