move_uploaded_file 俺没用过,俺一般是copy过去

解决方案 »

  1.   

    <?php
    // 在 4.1.0 以前的 PHP 中,需要用 $HTTP_POST_FILES 代替 $_FILES。
    // 在 4.0.3 以前的 PHP 中,需要用 copy() 和 is_uploaded_file() 来代替 move_uploaded_file()。$uploaddir = '/var/www/uploads/';
    $uploadfile = $uploaddir. $_FILES['userfile']['name'];
    print "<pre>";
    if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . $_FILES['userfile']['name'])) {
        print "File is valid, and was successfully uploaded.  Here's some more debugging info:\n";
        print_r($_FILES);
    } else {
        print "Possible file upload attack!  Here's some debugging info:\n";
        print_r($_FILES);
    }?>bool move_uploaded_file ( string filename, string destination)
    本函数检查并确保由 filename 指定的文件是合法的上传文件(即通过 PHP 的 HTTP POST 上传机制所上传的)。如果文件合法,则将其移动为由 destination 指定的文件。 如果 filename 不是合法的上传文件,不会出现任何操作,move_uploaded_file() 将返回 FALSE。 如果 filename 是合法的上传文件,但出于某些原因无法移动,不会出现任何操作,move_uploaded_file() 将返回 FALSE。此外还会发出一条警告。 这种检查显得格外重要,如果上传的文件有可能会造成对用户或本系统的其他用户显示其内容的话。 注: 当 安全模式(safe mode) 被激活,PHP 将检查您将要操作的文件或者目录与正在执行的脚本是否有相同的 UID。注: move_uploaded_file() 不会受到正常的安全模式 UID 限制。但这不会不安全,因为 move_uploaded_file() 仅作用于通过 PHP 上传的文件。 
      

  2.   

    我自己写的一个上传文件的函数,与大家分享一下!
    <?
    //------------------------------------上传文件-------------------------------------
    //  调用格式:   $Value=FileUp($FileUpPath,$FileName,$FileSavePath);
    //  返回的结果是一个数组,array[0]是表示上传状态,array[1]表示保存后文件名,array[2]表示保存路径 //形参$FileUpPath是指文件被上传后在服务端储存的临时路径,形参$FileName指客户端机器文件的原名称,形参$FileSavePath指文件上传后在服务器端储存的路径     function FileUp($FileUpPath,$FileName,$FileSavePath)
     {                                                           
     $Name=explode(".",$FileName);                            //分解文件名的小数点的个数
     $dSun=count($Name);                                          //$dSun用于记录小数点的个数
     
     if ($dSun>1)                                                           //如果有小数点,那么原文件有扩展名
        {
           $ExtendName=$Name[$dSun-1];                     // 取扩展名
         }
       else     
          {
                  $ExtendName="";
            }            
     
        $FileUpTime=date("YmjHis");                                                          //获取文件上传时的时间
        $FileNameSave= $FileUpTime.rand(1, 45). ".".$ExtendName;                       //文件改为新名  (名字=年+月+日+时+分+秒+最多两位的随机数+扩展名)       if (file_exists($FileSavePath.$FileNameSave))
         {    
              ?>
               <Script language=javascript>
               window.alert("文件已存在,不能创建,请稍后再试!");
               </Script>
             <?
           $Save[0]=flase;                                                                          //上传没有成功,上传状态位置flase;
         }
       else
           {
                 $fUpf=copy ($FileUpPath,$FileSavePath.$FileNameSave);
                if (!$fUpf)
                    {
                        ?>
                            <Script language=javascript>
                            window.alert("文件没有上传成功,请稍后再试!");
                            // window.history.back();
                            </Script>
                       <?
                      $Save[0]=flase;                                                                        //上传没有成功,上传状态位置flase; 
                   }
                else
                   {
                      $Save[0]=true;                                                                        //上传成功,上传状态位置true; 
                      $Save[1]=$FileNameSave;                                                     //  保存后文件名                                       
                      $Save[2]=$FileSavePath;                                                       // 保存路径
                      }     
               
          }
            
            return $Save;
     }
    ?>
      

  3.   

    我把程序做了一下修改,现在能上传一般的文本文件(我就试了试文本文件和JPG的图象文件),但图象文件上传不成功。对图象文件的上传有什么特殊的要求吗?