php之多文件上传

多文件上传
重点函数
is_uploaded_file
move_uploaded_file

分为两种
同名表单:使用[]变为数组
    <input type="file" name="image[]"/><br/>
    <input type="file" name="image[]"/><br/>
    <input type="file" name="image[]"/><br/>
不同名表单:name不唯一
    <input type="file" name="image1"/><br/>
    <input type="file" name="image2"/><br/>
    <input type="file" name="image3"/><br/>

批量上传:同名表单:将表单名字形成数组,将文件对应五要素形成对应数量的数组

        :不同名表单:每个文件也就是每个name都是一个独立的数组

对多文件的数据进行遍历读取和处理

不同名多文件,每个name都是一个独立的数组
按照表单名字从$_FILES中取出来,利用name的不同来区分数组
使用遍历依次取出每个独立name的数组并且判断移动

foreach ($_FILES as $file) {
    if(is_uploaded_file($file['tmp_name'])){
        if(move_uploaded_file($file['tmp_name'],'upload/'.$file['name'])){
            echo $file['name']."成功!"."<br/>";
        }else{
            echo $file['name']."移动失败!"."<br/>";
        }
    }else{
        echo "上传失败!"."<br/>";
    }
}

同名表单怎么实现?

$arr=array();
for($lop=0;$lop<3;$lop++){
    if(isset($_FILES['image']['name']) && is_array($_FILES['image']['name'])){
        $arr[]=array(
            'name'=>$_FILES['image']['name'][$lop],
            'type'=>$_FILES['image']['type'][$lop],
            'tmp_name'=>$_FILES['image']['tmp_name'][$lop],
            'error'=>$_FILES['image']['error'][$lop],
            'size'=>$_FILES['image']['size'][$lop]
            );
    }
}

代码:
 

02.html
<html>
<head></head>
<body>
<form method="POST" enctype="multipart/form-data" action="01.php">
	<input type="file" name="image[]"/><br/>
	<input type="file" name="image[]"/><br/>
	<input type="file" name="image[]"/><br/>
	<input type="submit" name="sub" value="多文件上传"/>
</form>
<form method="POST" enctype="multipart/form-data" action="01.php">
	<input type="file" name="image1"/><br/>
	<input type="file" name="image2"/><br/>
	<input type="file" name="image3"/><br/>
	<input type="submit" name="sub" value="多文件上传"/>
</form>
</body>
</html>
01.php
<?php
header('content-type:text/html;charset=utf-8');
//echo "<prev>";
//print_r($_FILES);

//不同表名

foreach ($_FILES as $file) {
	if(is_uploaded_file($file['tmp_name'])){
		if(move_uploaded_file($file['tmp_name'],'upload/'.$file['name'])){
			echo $file['name']."成功!"."<br/>";
		}else{
			echo $file['name']."移动失败!"."<br/>";
		}
	}else{
		echo "上传失败!"."<br/>";
	}
}


//相同表名

$arr=array();
for($lop=0;$lop<3;$lop++){
	if(isset($_FILES['image']['name']) && is_array($_FILES['image']['name'])){
		$arr[]=array(
			'name'=>$_FILES['image']['name'][$lop],
			'type'=>$_FILES['image']['type'][$lop],
			'tmp_name'=>$_FILES['image']['tmp_name'][$lop],
			'error'=>$_FILES['image']['error'][$lop],
			'size'=>$_FILES['image']['size'][$lop]
			);
	}
}


/*
if(isset($_FILES['image']['name']) && is_array($_FILES['image']['name'])){
	$arr=array();
	foreach($_FILES['image']['name'] as $k => $file){
		$arr[]=array(
			'name'=>$file,
			'type'=>$_FILES['image']['type'][$K],
			'tmp_name'=>$_FILES['image']['tmp_name'][$K],
			'error'=>$_FILES['image']['error'][$K],
			'size'=>$_FILES['image']['size'][$K]
			);
	}
}
*/
print_r($arr);
?>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值