<?php
$rootpath = "D:/www/up/";
if(!empty($_POST["up"])){
$arr = @$_FILES["movie"];
if($arr["error"] == 0){
move_uploaded_file($arr["tmp_name"],$rootpath.$arr["name"]);
echo "successful";
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
 </HEAD>
 <BODY>
   <form action="" method="post" enctype="multipart/form-data">
<input type="file" name="movie" size=50>
<input type="submit" value="upload" name="up">
   </form>
 </BODY>
</HTML>这个不会有问题

解决方案 »

  1.   


    格式判断
     
             function get_ext($str,$dot=true){
         return substr($str,strrpos($str,'.')-strlen($str)+($dot?0:1));
            }    
    function check_img_valid($arrfiles){
                    $arrvalidext = array(".jpg",".gif",".png",".jpeg");
    if(!empty($arrfiles)){
    foreach($arrfiles as $key => $value)
    {
    $ext = strtolower(get_ext($value["name"]));
    if(!in_array($ext,$arrvalidext)){ return false; }
    }
    return true;
    }else{
    return false;
    }
    }
      

  2.   

    你把这个加在前面echo ($HTTP_POST_FILES['upload_file']['tmp_name']);
    看看有结果么?
    正确的写法是$_FILES['upload_file']['tmp_name']
      

  3.   

    全文改成如下:
    <?php
    $maxsize = 28480;
    if (!$_REQUEST['submit'])
    {
        //print_r($HTTP_POST_FILES);
        $error = " WRONG ";
    }
    echo ($_FILES['upload_file']['tmp_name']);
    if (!is_uploaded_file($_FILES['upload_file']['tmp_name'])and !isset($error))
    {
        $error = " <b>u must upload a file! </b> <br> <br>";
        unlink($_FILES['upload_file']['tmp_name']);
    }
    if (!is_uploaded_file($_FILES['upload_file']['size']) > $maxsize and !isset($error))
    {
        $error = " <b>error, file must less than $maxsize bytes </b> <br> <br>";
        unlink($_FILES['upload_file']['tmp_name']);
    }
    if ($_FILES['upload_file']['type'] != "image/pjpeg" and 
    $_FILES['upload_file']['type'] != "image/gif" and
    $_FILES['upload_file']['type'] != "image/jpeg" and !isset($error))
    {
        $error = " <b>u must only upload .gif or .jpeg files. </b> <br> <br>";
        unlink($_FILES['upload_file']['tmp_name']);
    }
    if (!isset($error))
    {
        move_uploaded_file($_FILES['upload_file']['tmp_name'],"../upload/files/".$_FILES['upload_file']['name']);
        unlink($_FILES['upload_file']['tmp_name']);
        print "thank for your upload <br>";
        exit;
    }
    else
    {
      echo "$error";
    }
    ?>
    <html>
    <head>
    <title>upload file page </title>
    </head><body>
    <!-- The data encoding type, enctype, MUST be specified as below -->
    <form enctype="multipart/form-data" action=" <?php echo ($_SERVER['PHP_SELF'])?>" method="POST">
        Send this file: 
    <input name="upload_file" type="file" />
         <input type="submit" name="submit" value="Send File" />
    </form>
    </body>
    </html> 
      

  4.   

    谢谢zmouki,问题已经解决了,但不是很清楚$HTTP_POST_***为什么不可以上传,知道的话可以解释一下吗??
      

  5.   

    默认状态下,php.ini文件中register_globals=off,是关闭的,当改为ON时该变量可启用,不过有安全问题存在,还有就是我也不清楚的情况有可能会出现,PHP5后不建议这么写,具体的你可以上网查查,或者问问以前用过PHP4的老人,我没用过PHP4,所以具体的也很难和你说清楚。不好意思了。
      

  6.   

    不过,IIS6也不支持,这些是在网上找的,我也没用过。
      

  7.   

    register_globals使用详解
    http://www.phpchina.com/28049/viewspace_8705.html
    这会明白了,谢谢啊~~