将$userfile_size==0改为($userfile_size<=0)试试,不行干脆不要这个判断条件.

解决方案 »

  1.   

    你echo $userfile." ".$userfile_name." ".$userfile_size." ".$userfile_type."<br>";
    中间的$userfile_size是多少?怎么会是0呢
      

  2.   

    你传递了$userfile_size的值了吗?不然就计算一下文件的大小,因为你贴上来的代码中$userfile_size的值没有,不然就放弃这个判断条件。
      

  3.   

    如果你的register_globals是打开的请print_r($userfile),查看一下数组中是否有值。
    如果是关闭的,那么你上面的这个操作是不能成功的请用$_FILES[]数组来进行文件变量的取得。
    给你提供一个从我自己的类里分离出来的函数也许对你有用。/**  BEGIN function 
    *
    * 作者:偶然
    * 功能:提示并刷新
    * 时间:2003.9.5
    * 变量:
    * notes = 提示信息
    * 返回:none
    * 示例:
    *
    */
    function alert_refresh($notes)
    {
    echo "<Script language='javascript'>window.alert('$notes');</script>";
    echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL=".$_SERVER["HTTP_REFERER"]."\">";
    exit;
    }/**  BEGIN function 
    *
    * 作者:偶然
    * 功能:上传多种文件
    * 时间:2003.9.5
    * 变量:
    * file     = 临时文件
    * realname = 文件名
    * filetype = 允许上传的文件类型
    * dir      = 上传的文件夹
    *
    * 返回:none
    * 示例:
    * $filetype  = "jpg,png,jpeg,gif,rar,zip";//允许的文件类型
    * $tempfile  = $_FILES['file_name']['tmp_name'];//临时文件
    * $filename  = $_FILES['file_name']['name'];//文件名
    * $uploaddir = "upload";//自行指定
    * upload($tempfile,$filename,$filetype,$uploaddir);
    *
    */
    function upload($file,$realname,$type,$dir)
    {
    /* 判断是否有文件上传 */
    if(!$file)
    {
    alert_refresh("没有文件上传!");
    }

    /* 取得允许的文件类型 */
    $array = explode(',',$type); /* 清理多余空格 */
    $realname = str_replace(' ','',$realname); /* 取得文件后缀 */
    $postfix = substr(strrchr($realname,"."),1));

    /* 检查文件类型是否允许 */
    for($i=0; $i<count($array); $i++)
    {
    if($postfix == $array[$i])
    {
    $agree = '1';//设置上传标志位
    }
    }

    /* 如果类型正确便进行下面的操作 */
    if($agree==1)
    {
    /* 文件的保存路径,$dir由用户自己设置 */
    $dest = $dir.'/'.$realname; /* 确保文件能准确上传 */
    if(!is_uploaded_file($file))
    {
    alert_refresh("没有文件上传到指定位置!");
    } /* 查看目标目录是否存在,若不存在就建立一个 */
    if(!file_exists($dir)) 
    {
    $make = mkdir($dir,0755)
    if(!$make)
    {
        alert_refresh("文件夹建立失败!");
    }
    }
    else
    {
    /* 查看所上传的地方是否为一目录 */
    if(!is_dir($dir))
    {
    alert_refresh("所上传的位置不是一个目录!");
    } /* 检查上传文件是否存在 */
    if(file_exists($dest))
    {
    alert_refresh("你所上传的文件已经存在!");
    } /* 进行文件转移 */
    $r = move_uploaded_file($file,$dest);
    if($r == false)
    {
    alert_refresh("上传失败!");
    }
    else
    {
    alert_refresh("上传成功!");
    }
    }
    }
    else
    {
    alert_notes("文件类型不正确!");
    }
    }