文件上传 #
一、HTML表单 #
html
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<button type="submit">上传</button>
</form>
二、处理上传 #
2.1 $_FILES数组 #
php
<?php
$file = $_FILES['file'];
echo $file['name'];
echo $file['type'];
echo $file['tmp_name'];
echo $file['error'];
echo $file['size'];
2.2 移动上传文件 #
php
<?php
$tmpName = $_FILES['file']['tmp_name'];
$destination = 'uploads/' . $_FILES['file']['name'];
if (move_uploaded_file($tmpName, $destination)) {
echo "上传成功";
}
三、验证上传 #
php
<?php
function validateUpload(array $file, array $allowedTypes, int $maxSize): bool
{
if ($file['error'] !== UPLOAD_ERR_OK) {
return false;
}
if ($file['size'] > $maxSize) {
return false;
}
$type = mime_content_type($file['tmp_name']);
if (!in_array($type, $allowedTypes)) {
return false;
}
return true;
}
四、多文件上传 #
php
<?php
foreach ($_FILES['files']['name'] as $key => $name) {
$tmpName = $_FILES['files']['tmp_name'][$key];
move_uploaded_file($tmpName, 'uploads/' . $name);
}
五、总结 #
本章学习了文件上传的实现,下一章将学习目录操作。
最后更新:2026-03-26