include("../include/common.inc"); 
$title = "多个文件的上载程序"; 
include("../include/header.inc"); //定义允许上载文件的数目 define("UPLOAD_NO", 10); echo("<p align='center'><font size='4' color='#000080'>欢迎您!<br>一次可以最多上载".UPLOAD_NO."个文件<br><HR>n"); 
if($REQUEST_METHOD!="POST"){ 
echo("<form enctype="multipart/form-data" method=post>n"); 
echo("<INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="3000000">n"); for($i=1;$i<=UPLOAD_NO;$i++){ 
echo("<input type=file name=infile$i> "); if($i%2==0) 
echo("<br>n"); 
} echo("<br><br><input type="checkbox" name="overload" value="ON"></font> <font color='#ff0000'>是否覆盖已经存在的文件?</font>"); 
echo("<br><br><input type=submit value=上载></form>n"); 

else{ 
//处理上载 
$noinput = true; 
for($i=1;$noinput&&($i<=UPLOAD_NO);$i++){ 
if(${"infile".$i}!="none") $noinput = false; 

if($noinput){ 
echo("<font size='4' color='#000080'>没有选定的文件,返回重试</font>"); 
exit(); 

echo("<p align='center'><font size='4' color='#000080'>您选中的文件已经成功地上载到服务器的临时目录!</font><br>"); 
echo("<table border='1' width='84%' height='52' bordercolorlight='#008080' bordercolordark='#008080'> 
<tr> 
<td width='14%' bgcolor='#008000' height='21'><font color='#FFFFFF'>文件号</font></td> 
<td width='52%' bgcolor='#008000' height='21'><font color='#FFFFFF'>文件名称</font></td> 
<td width='34%' bgcolor='#008000' height='21'><font color='#FFFFFF'>文件大小</font></td> 
</tr>"); for($i=1;$i<=UPLOAD_NO;$i++){ 
$just=${"infile".$i."_size"}; 
$fp_size[i] = $just; if($overload!=ON){ 
if(file_exists(AddSlashes(dirname($PATH_TRANSLATED))."\upload\".${"infile".$i."_name"})) 
echo "<font size='4' color='#ff0000'>您上载的文件<font color='#000000'>".${"infile".$i."_name"}."</font>已经存在,该文件拷贝失败!</font><br>"; 
else{ 
if(${"infile".$i}!="none"&?(${"infile".$i},AddSlashes(dirname($PATH_TRANSLATED))."/upload/".${"infile".$i."_name"})&&unlink(${"infile".$i})){ 
$str = ${"infile".$i."_name"}; 
echo("<tr> 
<td width='14%' height='19'>$i</td> 
<td width='52%' height='19'>$str</td> 
<td width='34%' height='19'>$fp_size[i]</td> 
</tr>"); 



else{ 
if(${"infile".$i}!="none"&?(${"infile".$i},AddSlashes(dirname($PATH_TRANSLATED))."upload".${"infile".$i."_name"})&&unlink(${"infile".$i})){ 
$str = ${"infile".$i."_name"}; 
echo("<tr> 
<td width='14%' height='19'>$i</td> 
<td width='52%' height='19'>$str</td> 
<td width='34%' height='19'>$fp_size[i]</td> 
</tr>"); 

} } 
echo "</table>"; 
} include("../include/footer.inc"); ?> 

解决方案 »

  1.   

    我觉得先遍历图片文件夹,然后copy过去。$source = "image/";
    $destination = "upload/";
    $p = getDir($source);
    for($i = 0; $i < count($p); $i++) {
        if (copy ($source.$p[$i], $destination)) {
            countinue;
        } else {
            echo "FILE [ $p[$i] ] Upload Failed !";
        }
    }随手写的,没调试。只是提供个思路,还望高人指点一二。  :)
      

  2.   

    我现在有一个单个图片上传的源代码,谁能帮我修改成批量上传的,谢谢!
    index.htm源代码:
    <form enctype="multipart/form-data" action="upload.php" method="post">
    <input type="hidden" name="MAX_FILE_SIZE" value="100000">
            <input name="userfile" type="file">
            <input type="submit" value="上传">
    </form>
    -----------------------------------------------
    upload.php源代码:
    <?
    if(is_array($HTTP_POST_FILES)){
    $upfile = $HTTP_POST_FILES['userfile']['tmp_name'];
    $upfile_name = $HTTP_POST_FILES['userfile']['name'];
    }
    $path_translated = "upload/";//上传文件夹
    $UpLoadPath ="upload/";
    $time=date("YmdHis");
    $FileName = $UpLoadPath."$time$upfile_name";//$upfile_name就是上传的文件名
    $file_name = $UpLoadPath."$upfile_name";
    if($upfile!="none" && $upfile!="" && $upfile_name!=""){
    copy($upfile,$FileName);
    }
    ?>
      

  3.   

    同意52juanjuan(Fibona)的to: wanzhen([ Pisces ])你那样做的只是在服务器上复制文件而已,是不能上传文件的
      

  4.   

    我那个只是思想。如果把 $source 改成 $_FILES[filename][tmp_name] 再加循环; 不就实现多文件上传了。
    to  fitainfo(痴迷者) 你可以把 upfile.php 嵌套(<iframe src=upfile.php width=100% height=20 scorlling=no></iframe>)在另一个页面 post.php 中,然后用 js 实现,上传一个文件就在 post.php 文件中的 textarea 中添一条路径记录,如此重复。(地址之间最好有个隔断符)
    最后再提交 post.php ,把路径地址全都添加到数据库中去。
      

  5.   

    To: xylegend(晓逸)
    你误解我的意思了,我要的是那种信息管理及编辑时,那些信息所必需佩戴的图片。