注意的点
- 创建一个 upload 文件夹
- 修改 php.ini 配置
- 上传文件后,文件存在临时目录,需要服务端操作并放到一个实际的目录中去
upload_max_filesize = 2M
post_max_size = 8M
核心代码
<?php
function upload () {
if (!isset($_FILES['avatar'])) {
$GLOBALS['message'] = '别玩我了';
return;
}
$avatar = $_FILES['avatar'];
echo $avatar['error'];
if ($avatar['error'] !== UPLOAD_ERR_OK) {
$GLOBALS['message'] = '上传失败';
return;
}
$source = $avatar['tmp_name'];
$target = './uploads/' . $avatar['name'];
$moved = move_uploaded_file($source, $target);
if (!$moved) {
$GLOBALS['message'] = '上传失败';
return;
}
}
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
upload();
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>文件上传</title>
</head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
<input type="file" name="avatar">
<button>上传</button>
<?php if (isset($message)): ?>
<p style="color: hotpink"><?php echo $message; ?></p>
<?php endif ?>
</form>
</body>
</html>