但很奇怪,我同时上传两个时,提交时是分两次的,而且每一次提交的文件名 都是一样的本来按下upload,就可了,两张图片名在数据库中也是对应一个ID,但现在有两个ID,而且第一个ID的字段address,address2的文件名是一样的,是第一个图片的文件名
第二个ID的字段address,address2的文件名也是一样的,第二个图片的文件名为什么会这样呢!帮忙看看吧//form <form action="upload.php3" method="post" enctype="multipart/form-data"> 
<INPUT TYPE = "hidden" NAME = "MAX_FILE_SIZE" VALUE ="307200"> 
<INPUT TYPE = "hidden" NAME = "action" VALUE = "1"><input name="Upfile[]" type="file"><br> 
<input name="Upfile[]" type="file"><br> 
<input type="submit" value="upload"> 
</form> //upload.php3 <? include("common.inc.php3"); 
if($action){ for ($i=0;$i<2;$i++) { 
$file=$Upfile[$i]; if(($Upfile != "")&&($Upfile != "none")){ 
$type=substr(strrchr($Upfile_name[$i],"."),1); $type1="jpg"; 
$type2="gif"; 
//图片文件的格式 
if ((strcmp($type,$type1)) and (strcmp($type,$type2))) { 
echo "本网站只支持jpg,gif格式的图片文件"; 
echo " <a href='info_input.php3'>返回</a>"; 
exit(); } 
if ($Upfile_size[$i]>307200) { 
echo "上传的文件不能超过300k"; 
echo " <a href='info_input.php3'>返回</a>"; 
exit(); } 
$Filepath="pic/"; //上载文件存放路径 
$FileName=$Filepath.$Upfile_name[$i]; 
if($Upfile_size[$i] <1024) //上载文件大小 
{$FileSize = (string)$Upfile_size[$i] . "字节";} 
elseif($Upfile_size[$i] <(1024 * 1024)) 

$FileSize = number_format((double)($Upfile_size[$i] / 1024), 1) . " KB"; 

else 

$FileSize = number_format((double)($Upfile_size[$i]/(1024*1024)),1)."MB"; 

if(!file_exists($FileName)) 

if(copy($Upfile[$i],$FileName)) 
{unlink($Upfile[$i]); 
echo "<br><br>\n"; 
echo"信息已提交!"; 
echo "文件 $Upfile_name[$i] 已上载成功!"; 
echo "<br><br>\n"; 
echo "文件大小:$FileSize"; 
mysql_query("insert into hengkan(address,address2) values 
('$FileName','$FileName')") or die("无法连接服务器"); 
echo "<div align=center><font color=#ff0000 size=+3>信息已提交!</font></div>"; 
echo "<br><br>\n"; 

else 
{echo "<div align=center><font color=#ff0000 size=+3>文件上载失败!</font></div>"; } 

else 
{echo "<div align=center><font color=#ff0000 size=+3>你上传的文件已经存在,请确定是否正确!</font></div>"; } } 
} } echo "<meta http-equiv=refresh content='3;url=te1.php3'>"; 
exit(); 
?>

解决方案 »

  1.   

    不是已用数组了
    很奇怪,我同时上传两个时,提交时是分两次的,而且每一次提交的文件名 都是一样的本来按下upload,就可了,两张图片名在数据库中也是对应一个ID,但现在有两个ID,而且第一个ID的字段address,address2的文件名是一样的,是第一个图片的文件名
    第二个ID的字段address,address2的文件名也是一样的,第二个图片的文件名为什么会这样呢!帮忙看看吧
      

  2.   

    <style>
    td.mee1{display:expression((c1%2)?"none":"block")}
    </style>
    <script>
    var c1=1;
    function Addpic()
    {
    c1=0;
    document.all.pics.innerHTML=document.all.pics.innerHTML+"<input name=\"pic[]\" type=\"file\" id=\"pic[]\"><br>";
    }
    </script>
    .................
    <tr> 
          <td width="206" valign="middle" height="12" align="right">图片:</td>
          <td width="314" valign="middle" height="12" align="left"><input name="pic[]" type="file" id="pic[]"> 
          </td>
          <td width="227" valign="middle" align="left"><a href="###" onClick="Addpic()">增加图片?</a></td>
        </tr>
        <tr> 
          <td valign="middle" height="18" align="right" class="mee1">图片:</td>
          <td height="18" colspan="2" align="left" valign="middle" class="mee1" id="pics"></td>
    ...................
    $pics=count($_FILES['pic']);
    $add="INSERT INTO cqupt(title,content,typeid,date,from_site,from_user) VALUES('$title','$content','$typeid','$date','$from_site','$from_user')";
    $ok=mysql_query($add);
    $sqlid=@mysql_insert_id();
    if($pics&&$sqlid)
    { $pic="";
    for($i=0;$i<$pics-1;$i++)
    {
    $name=date("U").strrchr($_FILES['pic']['name'][$i],".");
    if(copy($_FILES['pic']['tmp_name'][$i],"../touch/pic/$name"))
    $pic.=$name.",";
    }
    if($pic)
    {
    $pic=substr($pic,0,strlen($pic)-1);
    $sql="UPDATE cqupt SET pics='$pic' WHERE id=$sqlid";
    echo $sql;
    @mysql_query($sql);
    $ok=1; }
    }