📅  最后修改于: 2023-12-03 15:07:45.664000             🧑  作者: Mango
在处理图像上传时,我们常常需要对上传的图像进行重命名,这可以避免上传的图像文件名重复,导致后续操作的错误。下面介绍在 PHP 中如何实现更改名称的图像上传。
首先,我们需要在 HTML 中添加一个文件上传表单,具体代码如下:
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="image">
<input type="submit" value="Upload">
</form>
这是一个基本的文件上传表单,其中 enctype="multipart/form-data"
表示该表单可以上传文件。
接下来,我们需要在 PHP 中处理上传的图像。具体代码如下:
<?php
$target_dir = "uploads/"; // 上传文件目录
$target_file = $target_dir . basename($_FILES["image"]["name"]); // 上传文件路径
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION)); // 获取上传文件类型
// 检查上传的文件是否为图像
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["image"]["tmp_name"]);
if($check !== false) {
echo "File is an image - " . $check["mime"] . ".";
} else {
echo "File is not an image.";
exit;
}
}
// 检查上传文件是否存在
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
exit;
}
// 检查上传文件大小
if ($_FILES["image"]["size"] > 5000000) {
echo "Sorry, your file is too large.";
exit;
}
// 允许上传的文件类型
$allowed_types = array("jpg", "png", "jpeg", "gif");
if (!in_array($imageFileType, $allowed_types)) {
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
exit;
}
// 生成新文件名
$new_file_name = uniqid() . '.' . $imageFileType;
$target_file = $target_dir . $new_file_name;
// 移动上传文件并更名
if (move_uploaded_file($_FILES["image"]["tmp_name"], $target_file)) {
echo "The file ". $new_file_name. " has been uploaded.";
} else {
echo "Sorry, there was an error uploading your file.";
}
?>
以上 PHP 代码实现了以下功能:
也就是说,我们可以在上传文件时对上传的文件进行多方面的限制,确保上传的文件符合要求。
以上就是在 PHP 中更改名称的图像上传的介绍。通过以上代码,我们可以扩展图像上传的功能,添加多种校验和效验功能,保证程序的稳定和安全性。