下面的的form提交页面
<form action="upload.php" method="post" enctype="multipart/form-data">
    <input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
    <input type="file" name="spic" /><br/>
    <input type="submit" name="sub" value="upload"/>
    </form>
upload.php页面的代码
    if($_FILES["spic"]["error"] != 0)
    {
        switch($_FILES["spic"]["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 "未知错误";
                
        }
    }else
    {
        echo "没有发生错误";    
    } 我在form表单里边有限制最大的尺寸 MAX_FILE_SIZE=1M  如果我上传word 图片 如果是超过1M的话会提示的 但是我换了一个大于1M的exe 竟然可以上传成功
查看了PHP.INI之后更加郁闷  ;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;; Whether to allow HTTP file uploads.
file_uploads = On; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
upload_tmp_dir = "d:/wamp/tmp"; Maximum allowed size for uploaded files.
upload_max_filesize = 2M我没有修改过配置文件!
配置文件限制最大2M但是我上传exe的文件传了 30M左右的   竟然没有报错。大牛门帮忙看看什么问题

解决方案 »

  1.   

    提交表单之后打印print_r($_FILES)试试?看看里面有啥东东?
      

  2.   

    遇到问题,首先开启error_reporting(E_ALL),然后对症下药
      

  3.   

    你表单里隐藏域的值没有加入判断,怎么会起效?既然你php.ini中设置了上传的最大大小。应该会生效。检查重启了服务器没有。
      

  4.   


    if (isset($_POST['sub'] ){} else {
       echo '文件过大或者,其他未知错误!';
    }//如果小于1M,echo $_POST['sub'] 会显示upload;,但是如果大于,echo $_POST['sub'] 就会显示空;
    我就是这样解决上传30M而不报错的~~
      

  5.   

    对,应该用楼上的方法,判断 sub 表单按钮是否被点击提交来判断文件上传然而另一方面,我调试的时候上传个1.73MB的exe文件是可以正常上传的,估计是配置问题,而不是代码存在问题