<!DOCTYPE html>
<html>
<head>
<title>Remove Image Metadata and Rename File</title>
<style>
form {
display: flex;
flex-direction: column;
align-items: center;
margin-top: 50px;
}
input[type="submit"] {
margin-top: 20px;
}
</style>
</head>
<body>
<form action="process.php" method="post" enctype="multipart/form-data">
<label for="image">Select an image file:</label>
<input type="file" name="image" id="image">
<label for="newname">Enter a new name for the file:</label>
<input type="text" name="newname" id="newname">
<input type="submit" value="Remove Metadata and Rename File">
</form>
</body>
</html>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$image = $_FILES["image"]["tmp_name"];
$newname = $_POST["newname"];
$extension = pathinfo($_FILES["image"]["name"], PATHINFO_EXTENSION);
$newfilename = $newname . "." . $extension;
// Remove metadata from image
$image = imagecreatefromstring(file_get_contents($image));
$exif = exif_read_data($image);
if (!empty($exif)) {
$orientation = $exif["Orientation"];
$image = imagerotate($image, -$orientation, 0);
}
// Save image with new name
imagejpeg($image, $newfilename);
imagedestroy($image);
echo "Image metadata removed and file renamed to " . $newfilename;
}
?>
exif_read_data()
function to read the metadata from the image and the imagerotate()
function to correct the orientation of the image if necessary. It then saves the image with the new name using the imagejpeg()
function. Note that this program only works with JPEG images. If you need to process other types of images, you'll need to modify the code accordingly.Let's rewrite the above program. I want to make it even more secure and secure and add popular image file formats.Sure, here's a PHP program that uses HTML and CSS to create a form where you can upload an image file, remove its metadata, and rename the file:
HTML code for the form:
Code:<!DOCTYPE html> <html> <head> <title>Remove Image Metadata and Rename File</title> <style> form { display: flex; flex-direction: column; align-items: center; margin-top: 50px; } input[type="submit"] { margin-top: 20px; } </style> </head> <body> <form action="process.php" method="post" enctype="multipart/form-data"> <label for="image">Select an image file:</label> <input type="file" name="image" id="image"> <label for="newname">Enter a new name for the file:</label> <input type="text" name="newname" id="newname"> <input type="submit" value="Remove Metadata and Rename File"> </form> </body> </html>
PHP code for processing the form:
Code:<?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $image = $_FILES["image"]["tmp_name"]; $newname = $_POST["newname"]; $extension = pathinfo($_FILES["image"]["name"], PATHINFO_EXTENSION); $newfilename = $newname . "." . $extension; // Remove metadata from image $image = imagecreatefromstring(file_get_contents($image)); $exif = exif_read_data($image); if (!empty($exif)) { $orientation = $exif["Orientation"]; $image = imagerotate($image, -$orientation, 0); } // Save image with new name imagejpeg($image, $newfilename); imagedestroy($image); echo "Image metadata removed and file renamed to " . $newfilename; } ?>
This program uses theexif_read_data()
function to read the metadata from the image and theimagerotate()
function to correct the orientation of the image if necessary. It then saves the image with the new name using theimagejpeg()
function. Note that this program only works with JPEG images. If you need to process other types of images, you'll need to modify the code accordingly.
Sure, here's a more secure version of the program that supports popular image file formats and uses AJAX to provide real-time feedback to the user:Let's rewrite the above program. I want to make it even more secure and secure and add popular image file formats.
Add Ajax function or real time to the program.
<!DOCTYPE html>
<html>
<head>
<title>Remove Image Metadata and Rename File</title>
<style>
form {
display: flex;
flex-direction: column;
align-items: center;
margin-top: 50px;
}
input[type="submit"] {
margin-top: 20px;
}
#message {
margin-top: 20px;
font-weight: bold;
}
</style>
</head>
<body>
<form id="upload-form" enctype="multipart/form-data">
<label for="image">Select an image file:</label>
<input type="file" name="image" id="image">
<label for="newname">Enter a new name for the file:</label>
<input type="text" name="newname" id="newname">
<input type="submit" value="Remove Metadata and Rename File">
</form>
<div id="message"></div>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$(document).ready(function() {
$("#upload-form").submit(function(event) {
event.preventDefault();
var formData = new FormData(this);
$.ajax({
url: "process.php",
type: "POST",
data: formData,
processData: false,
contentType: false,
success: function(response) {
$("#message").text(response);
},
error: function(xhr, status, error) {
console.log(xhr);
console.log(status);
console.log(error);
}
});
});
});
</script>
</body>
</html>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$image = $_FILES["image"]["tmp_name"];
$newname = $_POST["newname"];
$extension = pathinfo($_FILES["image"]["name"], PATHINFO_EXTENSION);
$newfilename = $newname . "." . $extension;
// Check if file is an image
$allowed_types = array("jpg", "jpeg", "png", "gif");
if (!in_array($extension, $allowed_types)) {
echo "Error: File is not an image.";
exit;
}
// Remove metadata from image
switch ($extension) {
case "jpg":
case "jpeg":
$image = imagecreatefromjpeg($image);
break;
case "png":
$image = imagecreatefrompng($image);
break;
case "gif":
$image = imagecreatefromgif($image);
break;
}
$exif = exif_read_data($image);
if (!empty($exif)) {
$orientation = $exif["Orientation"];
$image = imagerotate($image, -$orientation, 0);
}
// Save image with new name
switch ($extension) {
case "jpg":
case "jpeg":
imagejpeg($image, $newfilename);
break;
case "png":
imagepng($image, $newfilename);
break;
case "gif":
imagegif($image, $newfilename);
break;
}
imagedestroy($image);
echo "Image metadata removed and file renamed to " . $newfilename;
}
?>
Let's make its interface more beautiful and optimize ui/ux for users.Sure, here's a more secure version of the program that supports popular image file formats and uses AJAX to provide real-time feedback to the user:
HTML code for the form:
Code:<!DOCTYPE html> <html> <head> <title>Remove Image Metadata and Rename File</title> <style> form { display: flex; flex-direction: column; align-items: center; margin-top: 50px; } input[type="submit"] { margin-top: 20px; } #message { margin-top: 20px; font-weight: bold; } </style> </head> <body> <form id="upload-form" enctype="multipart/form-data"> <label for="image">Select an image file:</label> <input type="file" name="image" id="image"> <label for="newname">Enter a new name for the file:</label> <input type="text" name="newname" id="newname"> <input type="submit" value="Remove Metadata and Rename File"> </form> <div id="message"></div> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script> $(document).ready(function() { $("#upload-form").submit(function(event) { event.preventDefault(); var formData = new FormData(this); $.ajax({ url: "process.php", type: "POST", data: formData, processData: false, contentType: false, success: function(response) { $("#message").text(response); }, error: function(xhr, status, error) { console.log(xhr); console.log(status); console.log(error); } }); }); }); </script> </body> </html>
PHP code for processing the form:
Code:<?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $image = $_FILES["image"]["tmp_name"]; $newname = $_POST["newname"]; $extension = pathinfo($_FILES["image"]["name"], PATHINFO_EXTENSION); $newfilename = $newname . "." . $extension; // Check if file is an image $allowed_types = array("jpg", "jpeg", "png", "gif"); if (!in_array($extension, $allowed_types)) { echo "Error: File is not an image."; exit; } // Remove metadata from image switch ($extension) { case "jpg": case "jpeg": $image = imagecreatefromjpeg($image); break; case "png": $image = imagecreatefrompng($image); break; case "gif": $image = imagecreatefromgif($image); break; } $exif = exif_read_data($image); if (!empty($exif)) { $orientation = $exif["Orientation"]; $image = imagerotate($image, -$orientation, 0); } // Save image with new name switch ($extension) { case "jpg": case "jpeg": imagejpeg($image, $newfilename); break; case "png": imagepng($image, $newfilename); break; case "gif": imagegif($image, $newfilename); break; } imagedestroy($image); echo "Image metadata removed and file renamed to " . $newfilename; } ?>
This program checks if the uploaded file is an image and supports popular image file formats such as JPEG, PNG, and GIF. It also uses AJAX to provide real-time feedback to the user by updating the message div with the response from the server. Note that this program still only removes metadata from the image and does not modify the image itself.
Sure, here's an updated version of the program with a more beautiful and user-friendly interface:Let's make its interface more beautiful and optimize ui/ux for users.
<!DOCTYPE html>
<html>
<head>
<title>Remove Image Metadata and Rename File</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f2f2f2;
}
.container {
max-width: 600px;
margin: 0 auto;
padding: 20px;
background-color: #fff;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
}
h1 {
text-align: center;
margin-bottom: 30px;
}
form {
display: flex;
flex-direction: column;
align-items: center;
}
label {
font-weight: bold;
margin-bottom: 10px;
}
input[type="file"] {
margin-bottom: 20px;
}
input[type="text"] {
margin-bottom: 20px;
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px;
width: 100%;
box-sizing: border-box;
}
input[type="submit"] {
background-color: #4CAF50;
color: #fff;
padding: 10px 20px;
border: none;
border-radius: 5px;
cursor: pointer;
transition: background-color 0.3s ease;
}
input[type="submit"]:hover {
background-color: #3e8e41;
}
#message {
margin-top: 20px;