php编写一个实现图片文件上传的程序,要求只允许上传的图片扩展名为 .jpeg .png 或.gif
时间: 2024-02-13 22:01:18 浏览: 212
好的,你可以参考以下 PHP 代码实现图片文件上传,其中使用了 `$_FILES` 和 `pathinfo()` 函数来获取上传文件的信息,使用了 `in_array()` 函数来判断上传文件的扩展名是否合法,最后使用了 `move_uploaded_file()` 函数将上传的文件保存到指定目录。
```php
<?php
if(isset($_POST['submit'])){
$allowed_extensions = array("jpeg", "png", "gif");
$file_extension = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
$file_size = $_FILES['file']['size'];
$file_tmp = $_FILES['file']['tmp_name'];
if(in_array($file_extension, $allowed_extensions) === false){
$errors[] = "扩展名不合法,请上传 JPEG、PNG 或 GIF 格式的图片!";
}
if($file_size > 2097152){
$errors[] = "文件大小不能超过 2MB!";
}
if(empty($errors) == true){
move_uploaded_file($file_tmp, "uploads/" . $_FILES['file']['name']);
echo "文件上传成功!";
}else{
print_r($errors);
}
}
?>
<html>
<head>
<title>图片上传</title>
</head>
<body>
<form method="POST" enctype="multipart/form-data">
<input type="file" name="file" />
<input type="submit" name="submit" value="上传" />
</form>
</body>
</html>
```
在这段代码中,`$allowed_extensions` 数组存储了允许上传的图片扩展名,`$file_extension` 变量使用 `pathinfo()` 函数获取上传文件的扩展名,`$file_size` 变量获取上传文件的大小,`$file_tmp` 变量获取上传文件的临时存储路径。
然后使用 `in_array()` 函数判断 `$file_extension` 是否在 `$allowed_extensions` 数组中,如果不在,则说明上传的文件不是被允许的图片格式,抛出一个错误信息。
接下来判断上传文件的大小是否超过 2MB,如果超过则同样抛出一个错误信息。
最后使用 `move_uploaded_file()` 函数将上传的文件从临时目录移动到指定的目录中,同时输出上传成功的信息。如果出现了错误,使用 `print_r()` 函数输出错误信息。
阅读全文