用PHP写出 实现照片上传功能,并要求文件类型必需是gif或png 文件大小不能超过8k
时间: 2024-09-17 07:08:52 浏览: 54
在PHP中,你可以创建一个图片上传功能,同时限制文件类型和大小。下面是一个基本的例子,展示了如何在服务器端完成这些限制:
```php
<?php
// 设置允许上传的文件类型
$allowed_types = ['image/gif', 'image/png'];
// 获取上传的文件信息
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$file = $_FILES['photo'];
// 检查文件是否已经上传
if ($file['error'] === UPLOAD_ERR_OK) {
// 检查文件类型
$file_type = pathinfo($file['name'], PATHINFO_EXTENSION);
if (!in_array($file_type, $allowed_types)) {
die('只允许上传 GIF 和 PNG 格式的图片。');
}
// 检查文件大小
$max_size = 8 * 1024; // 8KB
if ($file['size'] > $max_size) {
die('文件大小不得超过 8KB.');
}
// 将文件移动到指定目录
$upload_dir = 'uploads/';
$new_file_name = uniqid() . '.' . $file_type;
$upload_path = $upload_dir . $new_file_name;
if (move_uploaded_file($file['tmp_name'], $upload_path)) {
echo '图片已成功上传。';
} else {
die('无法上传文件,请稍后再试。');
}
} else {
switch ($file['error']) {
case UPLOAD_ERR_INI_SIZE:
case UPLOAD_ERR_FORM_SIZE:
die('文件过大,请选择小于8KB的文件。');
default:
die('未知错误发生,无法上传图片。');
}
}
}
?>
<!-- HTML 表单 -->
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post" enctype="multipart/form-data">
<label for="photo">上传图片:</label>
<input type="file" name="photo" id="photo" accept=".gif, .png">
<button type="submit">上传</button>
</form>
```
在这个例子中,我们首先设置了允许上传的文件类型数组,然后在服务器接收到POST请求时检查文件类型和大小。如果满足条件,文件会被移动到`uploads/`目录下。
阅读全文