1. 准备工作
在开始编写代码之前,我们需要做一些准备工作:
1.1 环境搭建
确保您的服务器上已安装PHP和MySQL,并配置好相应的环境。
1.2 准备上传目录
2. 创建图片上传接口
2.1 表单设计
<form action="upload.php" method="post" enctype="multipart/form-data">
<label for="image">选择图片:</label>
<input type="file" name="image" id="image" required>
<input type="submit" value="上传">
</form>
2.2 PHP后端处理
<?php
// 检查是否有文件被上传
if (isset($_FILES['image'])) {
// 获取上传文件的信息
$file = $_FILES['image'];
$file_name = $file['name'];
$file_tmp = $file['tmp_name'];
$file_size = $file['size'];
$file_error = $file['error'];
// 设置允许上传的图片类型
$allowed_types = array('jpg', 'jpeg', 'png', 'gif');
$file_ext = strtolower(end(explode('.', $file_name)));
// 检查文件类型是否合法
if (in_array($file_ext, $allowed_types)) {
// 检查是否有错误发生
if ($file_error === 0) {
// 检查文件大小是否超过(例如:2MB)
if ($file_size <= 2097152) {
// 重命名上传的文件
$new_file_name = uniqid('', true) . '.' . $file_ext;
// 移动上传的文件到指定目录
$destination = 'uploads/' . $new_file_name;
move_uploaded_file($file_tmp, $destination);
// 返回成功信息
echo "文件上传成功!";
} else {
echo "文件大小超过。";
}
} else {
echo "文件上传出错。";
}
} else {
echo "不支持的文件类型。";
}
}
?>
3. 图片上传示例
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>图片上传示例</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<label for="image">选择图片:</label>
<input type="file" name="image" id="image" required>
<input type="submit" value="上传">
</form>
<?php
if (isset($_FILES['image'])) {
$file = $_FILES['image'];
$file_name = $file['name'];
$file_tmp = $file['tmp_name'];
$file_size = $file['size'];
$file_error = $file['error'];
// 设置允许上传的图片类型
$allowed_types = array('jpg', 'jpeg', 'png', 'gif');
$file_ext = strtolower(end(explode('.', $file_name)));
// 检查文件类型是否合法
if (in_array($file_ext, $allowed_types)) {
// 检查是否有错误发生
if ($file_error === 0) {
// 检查文件大小是否超过(例如:2MB)
if ($file_size <= 2097152) {
// 重命名上传的文件
$new_file_name = uniqid('', true) . '.' . $file_ext;
// 移动上传的文件到指定目录
$destination = 'uploads/' . $new_file_name;
move_uploaded_file($file_tmp, $destination);
// 显示上传的图片
echo "<img src='" . $destination . "' alt='上传的图片'/>";
} else {
echo "文件大小超过。";
}
} else {
echo "文件上传出错。";
}
} else {
echo "不支持的文件类型。";
}
}
?>
</body>
</html>