经典论坛's Archiver

sajiu 发表于 2008-7-4 23:41

求助关于php文件上传

按教程做了两个文件上传的程序第一个可以用,第二个却无法实现上传

[color=Red]第一个的代码:[/color]
文件提交:index.php
-------------------------------------------------------------------------------------------------------------------------------------------
[code]<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="max_file_size" value="10000000">
<center>请选择文件:<input name="userfile" type="file">
<input type="submit" value="上传文件">
</center>
</form>[/code]

表单处理:upload.php
[code]<?php
  $uploaddir = 'F:/APMServ5.2.0/www/htdocs/wjsc/uploads/mm/';
  $uploadfile = $uploaddir. $_FILES['userfile']['name'];
  print"<pre>";
  if  (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile))
  {print "上传成功!如下是调试信息:\n";
  print_r($_FILES);}
  else{print "上传失败!如下是调试信息:\n";
  print_r($_FILES);}
  print"</pre>"
?>[/code]

-----------------------------------------------------------------------------------------------------------------------
第二个程序
文件上传+表单处理 index2.php
[code]<?php
   if(!$UploadAction):
   //判断是上载界面还是实现界面,如果是上载界面,显示下面的html页面
?>
   
<HTML>
<HEAD>
<TITLE>文件上载界面</TITLE>
</HEAD>
<BODY>
   <TABLE>
     <CENTER>
       <form enctype="multipart/form-data" name="SubmitForm" action="index2.php"  method="post">
       <INPUT type="hidden" name="MAX_FILE_SIZE" value="1000000" />
       <INPUT TYPE="hidden" NAME="UploadAction" VALUE= "1" />
   <TR>   <TD>
   <INPUT name="UploadFile" type="file" size="30" />
   </TD>   </TR>
   
   <TR>   <TD>
   <INPUT name="submit" value="提交" type="submit" />
   </TD>   <TD>
   
   <INPUT name="reset" value="重置" type="reset" />
   </TD>   </TR>
   </form>
     </CENTER>
   </TABLE>
</BODY>
</HTML>
   
   
<?php
     else:
         //如果是实现页面,显示下面的HTML页面,并激活PHP脚本
?>
<HTML>
<HEAD>
<TITLE>文件上载代码</TITLE>
</HEAD>
<BODY>
<?php
  $UploadAction=0;
  //初始化UploadAction的状态
  
  $TimeLimit=60;
  //设置超时的限制时间,缺省时间为30秒,设置为0时为不限时,这里设置的是60秒
  
  set_time_limit($TimeLimit);
  //设置超时显示的时间
  
  
  $uploaddir = '/uploads/';
  //上载的文件存放路径
  $uploadfile = $uploaddir. $_FILES['userfile']['name'];
  //上载的文件名  
  $tmpfile = $_FILES['userfile']['tmp_name'];
  //临时文件  
  $file_size = $_FILES['userfile']['size'];
  //上载文件大小
  $errno = $_FILES['userfile']['error'];
  
  If(($tmpfile != "none") && ($tmpfile != ""))
  {
      if($file_size <1024)
          //上载文件大小
          
  {
          $strFileSize = (string)$file_size . "B";
          //对于小于1K的文件,以字节来显示文件大小
  }
                    
  elseif($file_size <(1024*1024)) // < 1MB
  {
          $strFileSize = number_format((double)($file_size/ 1024), 1) . "KB";
          //对大于1K并且小于1M的文件,以字节来显示文件大小
  }
  
   else
   {
          $strFileSize = number_format((double)($file_size/ (1024*1024)), 1) . "MB";
          //对于大于M的文件,用M字节来显示文件大小
          //不过,由于MAX_FILE_SIZE限制了上载文件的最大为1000000,还不到1M
          //因此大于1M的文件都将被忽略掉
   }
          
   if(!file_exists($uploadfile)) //如果在指定的位置,文件并不存在,继续上传
   {
      if(move_uploaded_file($tmpfile, $uploadfile)) //将上载的文件移动到指定的位置
          {
              echo "文件 $uploadfile (strFileSize)上传成功!";
          }
          else
          {
            echo "文件 $uploadfile 上载失败!(错误号:$errno)";
           }
         }
         else  //如果在指定的位置,已经存在了上载的文件,提示结束
         {
            echo "文件 $uploadfile 已经存在!(错误号:$errno)";  
         }
   }
   else
   //如果没有选择文件进行上传,或者上载的文件大小超过了MAX_FILE_SIZE,提示,结束
   {
          echo "你还没有选择任何文件上载,或者上载的文件超出了 $MAX_FILE_SIZE !";  
        }  
        set_time_limit(30);
        //居处缺省的超时设置
?>
        <BR><A HREF = "index2.php">返回</A>
    </BODY></HTML>
<?php
        endif;
?>
[/code]

sajiu 发表于 2008-7-5 00:49

多文件上传的时候只能传第二个
[code]<form action="upload1.php" method="post" enctype="multipart/form-data">
请选择文件:<p>
<input name="userfile[]" type="file"><br>
<input name="userfile[]" type="file"><p>
<input type="submit" value="上传文件">
</form>[/code]

[code]<?php
  $uploaddir = './uploads/';
  print"<pre>";
  
  for($i=0; $i<sizeof($_FILES['userfile']['tmp_name']); $i++)
  {
    $tmpfile = $_FILES['userfile']['tmp_name'][$i];
        $uploadfile = $uploaddir. $_FILES['userfile']['name'][$i];
  }
  if  (move_uploaded_file($tmpfile, $uploadfile))
  {print "$uploadfile 上传成功?如下是调试信息:\n";
  print_r($_FILES);}
  else{print "$uploadfile 上传失败!如下是调试信息:\n";
  print_r($_FILES);
    }
  print"</pre>"
?>[/code]

页: [1]



Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.