封装一个PHP多文件上传函数,可以方便地实现多个文件的上传操作。下面是一个详细的示例代码:
```php
function multiFileUpload($fileArray, $uploadDir) {
$uploadedFiles = [];
// 遍历文件数组
foreach ($fileArray['tmp_name'] as $key => $tmpName) {
$fileSize = $fileArray['size'][$key];
$fileName = $fileArray['name'][$key];
$fileType = $fileArray['type'][$key];
$fileError = $fileArray['error'][$key];
// 检查文件是否上传成功
if ($fileError === UPLOAD_ERR_OK) {
// 检查文件大小
if ($fileSize > 5242880) { // 限制文件大小为5MB
echo "文件太大,不能上传.";
continue;
}
// 生成唯一的文件名,避免重复
$newFileName = uniqid() . '_' . $fileName;
// 移动文件到目标目录
$destination = $uploadDir . '/' . $newFileName;
if (move_uploaded_file($tmpName, $destination)) {
$uploadedFiles[] = $newFileName;
} else {
echo "上传文件失败.";
}
} else {
echo "文件上传出错.";
}
}
return $uploadedFiles;
}
// 使用示例
if (isset($_FILES['files'])) {
$uploadDir = 'uploads'; // 上传目录
$uploadedFiles = multiFileUpload($_FILES['files'], $uploadDir);
if (!empty($uploadedFiles)) {
echo "以下文件已经成功上传:";
foreach ($uploadedFiles as $file) {
echo $file . "
";
}
}
}
?>
```
上面的代码定义了一个`multiFileUpload`函数,接受两个参数:文件数组和上传目录。函数遍历文件数组,对每个文件进行上传操作。
在函数内部,首先检查文件是否上传成功,然后检查文件大小。如果文件上传成功且文件大小符合要求,就生成一个唯一的文件名,然后将文件移动到目标目录。移动文件操作使用`move_uploaded_file`函数,该函数将临时文件移动到指定目录。
使用示例中,首先通过`isset`函数检查`$_FILES['files']`是否存在,如果存在则调用`multiFileUpload`函数进行文件上传操作。上传成功后,将上传的文件名以列表形式输出。
注意要点或相关知识:
1. HTML表单中的``用于上传文件,将文件提交到服务器端。
2. 通常情况下,文件上传操作需要在`
发表评论 取消回复