引言
第一章:PHP图片上传基础
1.1 图片上传原理
- 前端表单提交图片文件。
- 服务器接收图片文件。
- 服务器处理图片文件(如验证、重命名、保存等)。
- 将图片文件保存到服务器指定位置。
1.2 PHP上传文件函数
PHP提供了move_uploaded_file()函数用于上传文件。该函数的原型如下:
bool move_uploaded_file(string $source, string $destination)
其中,$source是上传文件的临时路径,$destination是上传文件的新路径。
1.3 文件上传验证
- 验证文件类型:通过文件的扩展名或MIME类型进行验证。
- 验证文件大小:上传文件的大小,防止恶意上传大文件占用服务器资源。
- 验证文件内容:通过读取文件内容进行验证,确保上传的是图片文件。
第二章:PHP单图上传实战
2.1 创建前端表单
<form action="upload.php" method="post" enctype="multipart/form-data">
选择图片:<input type="file" name="image" />
<input type="submit" value="上传" />
</form>
2.2 PHP处理上传文件
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (isset($_FILES['image'])) {
$image = $_FILES['image'];
// 验证文件类型
if ($image['type'] == 'image/jpeg' || $image['type'] == 'image/png') {
// 验证文件大小
if ($image['size'] <= 2000000) {
// 处理上传文件
$destination = "uploads/" . basename($image['name']);
if (move_uploaded_file($image['tmp_name'], $destination)) {
echo "文件上传成功!";
} else {
echo "文件上传失败!";
}
} else {
echo "文件大小超过!";
}
} else {
echo "非法文件类型!";
}
} else {
echo "没有选择文件!";
}
}
?>
2.3 保存上传的图片
第三章:PHP多图上传实战
3.1 修改前端表单
<form action="upload.php" method="post" enctype="multipart/form-data">
选择图片:<input type="file" name="images[]" multiple />
<input type="submit" value="上传" />
</form>
3.2 PHP处理上传文件
在upload.php文件中,我们需要修改代码以处理多图上传。以下是处理多图上传的基本步骤:
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (isset($_FILES['images'])) {
$images = $_FILES['images'];
foreach ($images['name'] as $key => $name) {
$image = $images['tmp_name'][$key];
$error = $images['error'][$key];
// 验证文件类型和大小
if ($error == 0) {
if ($images['type'][$key] == 'image/jpeg' || $images['type'][$key] == 'image/png') {
$destination = "uploads/" . basename($name);
if (move_uploaded_file($image, $destination)) {
echo "文件《{$name}》上传成功!<br/>";
} else {
echo "文件《{$name}》上传失败!<br/>";
}
} else {
echo "文件《{$name}》非法文件类型!<br/>";
}
} else {
echo "文件《{$name}》上传出错!错误代码:{$error}<br/>";
}
}
} else {
echo "没有选择文件!";
}
}
?>