php实现多文件上传
时间: 2023-07-16 14:13:34 浏览: 54
在 PHP 中实现多文件上传可以通过以下几个步骤实现:
1. 在前端创建一个表单,设置 `enctype="multipart/form-data"`,并在表单中添加一个或多个 `input` 元素,类型为 `file`。
2. 在 PHP 中接收表单提交的数据,可以通过 `$_FILES` 超全局变量来获取上传文件的相关信息。例如,`$_FILES['file']['name']` 表示上传文件的原始文件名,`$_FILES['file']['tmp_name']` 表示上传文件在服务器上的临时文件名,`$_FILES['file']['size']` 表示上传文件的大小,`$_FILES['file']['type']` 表示上传文件的 MIME 类型等。
3. 对于多个上传文件,可以通过循环遍历 `$_FILES` 数组来处理每个上传文件。例如,可以使用 `foreach` 循环来遍历 `$_FILES` 数组:
```
foreach ($_FILES['files']['name'] as $key => $name) {
$tmp_name = $_FILES['files']['tmp_name'][$key];
$size = $_FILES['files']['size'][$key];
$type = $_FILES['files']['type'][$key];
// 处理上传文件
}
```
4. 将上传文件移动到服务器上的目标位置,可以使用 `move_uploaded_file()` 函数来实现。例如,可以使用以下代码将上传文件移动到指定目录下:
```
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["file"]["name"]);
move_uploaded_file($_FILES["file"]["tmp_name"], $target_file);
```
完整的多文件上传示例代码如下:
```
<html>
<head>
<title>多文件上传</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="files[]" multiple>
<input type="submit" value="上传">
</form>
</body>
</html>
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$target_dir = "uploads/";
foreach ($_FILES['files']['name'] as $key => $name) {
$tmp_name = $_FILES['files']['tmp_name'][$key];
$size = $_FILES['files']['size'][$key];
$type = $_FILES['files']['type'][$key];
$target_file = $target_dir . basename($name);
move_uploaded_file($tmp_name, $target_file);
}
echo "上传成功!";
}
?>
```
在上面的示例代码中,我们创建了一个表单,设置 `enctype="multipart/form-data"`,并添加了一个 `input` 元素,类型为 `file`,同时添加了 `multiple` 属性,表示可以上传多个文件。
在 PHP 中,我们首先判断请求方法是否为 `POST`,然后遍历 `$_FILES` 数组,将每个上传文件移动到指定目录下。最后输出上传成功信息。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)