多文件上传
重点函数
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);
?>