关于错误信息的解释
从 PHP 4.2.0 开始,PHP 将随文件信息数组一起返回一个对应的错误代码。该代码可以在文件上传时生成的文件数组中的 ['error'] 字段中被找到,也就是 $_FILES['userfile']['error']。 UPLOAD_ERR_OK
值:0; 没有错误发生,文件上传成功。 UPLOAD_ERR_INI_SIZE
值:1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。 UPLOAD_ERR_FORM_SIZE
值:2; 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。 UPLOAD_ERR_PARTIAL
值:3; 文件只有部分被上传。 UPLOAD_ERR_NO_FILE
值:4; 没有文件被上传。 
注: 这些在 PHP 4.3.0 之后变成了 PHP 常量。 

解决方案 »

  1.   

    switch($_FILES['url']['error'])变成了常量,怎么能用呢
      

  2.   

    我上传一个百多兆的文件,居然说上上传成功(即0)。晕!(没有改PHP。INI)
      

  3.   

    看看你的php版本,如果不是4.3.0之后的版本肯定是零了。
      

  4.   

    switch($_FILES['url']['error']){
    case 0 :
    echo "文件上传成功!";
    // echo "<META HTTP-EQUIV=REFRESH CONTENT=2;URL='javascript:history.go(-1)'>";
    break;
    case 1 :
    echo "上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值";
    echo "<META HTTP-EQUIV=REFRESH CONTENT=5;URL='javascript:history.go(-1)'>";
    exit;
    case 2 :
    echo "上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值";
    echo "<META HTTP-EQUIV=REFRESH CONTENT=5;URL='javascript:history.go(-1)'>";
    exit;
    case 3 :
    echo "文件只有部分被上传";exit;
    case 4 :
    echo "没有文件被上传,请重新选择文件!";
    echo "<META HTTP-EQUIV=REFRESH CONTENT=2;URL='javascript:history.go(-1)'>";
    exit;
    }