All Mixtape
All Mixtape

Reputation: 31

How can I replace an existing image in php

How can i REPLACE an existing image in a folder using php? When i click upload button, the images are just adding into my folder instead of replacing it. Can you please add or rearrange my code. Thanks in advance.

<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
    echo "File is an image - " . $check["mime"] . ".";
    $uploadOk = 1;
} else {
    echo "File is not an image.";
    $uploadOk = 0;
}
}
// Check if file already exists
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}
// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000000000) {
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType 
!= 
"jpeg"
&& $imageFileType != "gif" ) {
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], 
$target_file)) {

    echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has 
been uploaded.";
} else {
    echo "Sorry, there was an error uploading your file.";
}
}
?>

Upvotes: 0

Views: 973

Answers (2)

Alessandro
Alessandro

Reputation: 898

Just comment or remove this piece of code:

from

// Check if file already exists
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}

to

// Check if file already exists
// if (file_exists($target_file)) {
// echo "Sorry, file already exists.";
// $uploadOk = 0;
// }

or delete it from your code...

Upvotes: 0

Hiren Raiyani
Hiren Raiyani

Reputation: 744

Currently your code is ok, its just adding image to your folder and name of image is same as your file name.

As I have checked in your code, you have added condition for existing file which means if same name file you upload then its send you an error.

So just comment below code and try to run.

// Check if file already exists
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}

Upvotes: 1

Related Questions