当上传文件大小比php.ini 中 upload_max_filesize 选项限制的值还大时,程序是不是就不往下运行了?我在php.ini 中设置的 upload_max_filesize 的值为2M,然后我上传的文件大小也不能大于2M,提交表单后,在后台判断文件大小,如果大于2M就提示错误,否则不提示。但是我在上传文件时直接上传了个3M的文件,然后程序没反应了,请问,当上传文件大小比php.ini 中 upload_max_filesize 的值还大时,程序有什么反应?应该如何获取到这个错误并提示用户?

解决方案 »

  1.   

    你不是说给出了判断了吗? 
    另外注意,也不能超过 post_max_size 的大小。一般上 upload_max_filesize<= post_max_size 
      

  2.   

    判断上传文件的大小,$_FILE['name']['size']
      

  3.   


    在后台$_FILE['name']['size']与upload_max_filesize怎么比较呢?就这样if($_FILES['file']['size'] > upload_max_filesize){...}是不对的吧?
      

  4.   


    我知道了,ini_get('upload_max_filesize')
      

  5.   

    ini_get('upload_max_filesize')得到的是10M,那么在比较时,10M用不用转换成10485760B呢?
      

  6.   

    在php.ini有两个值,一个是upload_max_filesize,一个是post_max_size,
    如果上传文件大小大于upload_max_filesize,那么$_FILES['file']['error'] = 1;
    如果上传文件大小大于post_max_size,那么$_FILES['file']['error'] = 2;
    如果文件只有部分被上传,那么$_FILES['file']['error'] = 3;
    如果没有文件被上传,那么$_FILES['file']['error'] = 4;
    如果文件全部上传成功,那么$_FILES['file']['error'] = 0.