1

Whenever I am uploading any file it says,

File is an image - image/png.Sorry, there was an error uploading your file.

I am using post method and enctype="multipart/form-data". My image file is also proper.

<?php
    if(isset($_POST['submit'])){
    $target_dir = "pics/";
        $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
        $uploadOk = 1;
        $imageFileType = 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"] > 500000) {
            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.";
            }
        }
     }
?>





<form action="" method="post" enctype="multipart/form-data">
            <div class="row">
              <div class="col-md-6">
                <div class="form-group">
                  <label for="usr">Select image to upload:</label>
                  <input type="file" name="fileToUpload" id="fileToUpload">
                </div>
                <div class="form-group">
                  <label for="usr">URL:</label>
                  <input type="text" class="form-control" id="usr" name="url">
                </div>
              </div>
            </div>
            <button type="submit" name="submit" class="btn btn-success">Add</button>
            <button type="reset" class="btn btn-warning">Reset</button>
          </form>
2
  • 4
    Looks like the generic W3Schools code w3schools.com/php/php_file_upload.asp which I can't see failing here, unless there's something you haven't done properly, like change something in the form, or checked if that folder you're wanting to upload to, has the proper permissions to write to it. Check for errors php.net/manual/en/function.error-reporting.php Commented Jan 28, 2016 at 19:34
  • Added form code also Commented Jan 28, 2016 at 19:38

1 Answer 1

1

Your file cannot be moved.

  • Check the path to move to
  • Check the permissions of the directory
  • Check your access to the tmp directory

You use a relative path: $target_dir = "pics/";

Change your path to:

$target_dir = $_SERVER['DOCUMENT_ROOT'] . '/pics/';
Sign up to request clarification or add additional context in comments.

1 Comment

Path is correct. I have given 777 access to that upload.php file, and even tried $target_dir = $_SERVER['DOCUMENT_ROOT'] . '/pics/'; . But still it is not working.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.