首先向大家讲解一下实现的方法。

要实现多文件上传,我们可以在form表单中添加多个input file域,然后将这些input file的name属性设置为相同的名称且使用数组的形式命名,例如filename[]。至于文件上传的php代码和单个文件上传是一样的道理。

下面看一个多文件上传的实例:

html文件example.html

<!DOCTYPE html>
<html>
<head>
<  charset=\"UTF-8\">
</head>
<body>
<form action=\"my_parser.php\" method=\"post\" enctype=\"multipart/form-data\">
  <p><input type=\"file\" name=\"file_array[]\"></p>
  <p><input type=\"file\" name=\"file_array[]\"></p>
  <p><input type=\"file\" name=\"file_array[]\"></p>
  <input type=\"submit\" value=\"Upload all files\">
</form>
</body>
</html>

php文件my_parser.php

<?php
if(isset($_FILES[\'file_array\'])){
    $name_array = $_FILES[\'file_array\'][\'name\'];
    $tmp_name_array = $_FILES[\'file_array\'][\'tmp_name\'];
    $type_array = $_FILES[\'file_array\'][\'type\'];
    $size_array = $_FILES[\'file_array\'][\'size\'];
    $error_array = $_FILES[\'file_array\'][\'error\'];
    for($i = 0; $i < count($tmp_name_array); $i++){
        if(move_uploaded_file($tmp_name_array[$i], \"test_uploads/\".$name_array[$i])){
            echo $name_array[$i].\" upload is complete<br>\";
        } else {
            echo \"move_uploaded_file function failed for \".$name_array[$i].\"<br>\";
        }
    }
}
?>

 

收藏 打印