简体   繁体   中英

I can't upload some pictures with PHP

I made a PHP aplication that can upload pictures to the server. It is working fine most of the time but it won't upload some pictures.

Here you can download all files including one picture that does work and one that does not: https://drive.google.com/file/d/0BwoIBS8cNsz4Rjl0eERMb2FndUk/view?usp=sharing

Here is my PHP code (file name: upload.php):

<?php
    if(isset($_POST["submit"])) {
        $target_dir = "slike/";
        $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
        $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"] > 5000000) {
            echo "Sorry, your file is too large.";
            $uploadOk = 0;
        }
        // Allow certain file formats
        if($imageFileType != "jpg" && $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.";
            }
        }
    }
    else{
        echo "Sorry, there was an error uploading your file.";
    }

?>

Here is my HTML code (file name: index.php):

<!DOCTYPE html>
<html>
<body>

<form action="upload.php" method="post" enctype="multipart/form-data">
    Select image to upload:
    <input type="file" name="fileToUpload" id="fileToUpload" required>
    <input type="submit" value="Upload Image" name="submit">
</form>

</body>
</html>

I'm using Wamp server on Windows 8 and i didn't change any configuration.

(English is not my native language and I hope to get more answers about the code as grammatical corrections.)

if ($_FILES["fileToUpload"]["size"] > 5000000) - (5000000/1024*2) limit is 4.7 MB

this one dont work.jpg : error => Upload ImageFile is an image - image/jpeg.Sorry, your file is too large.Sorry, your file was not uploaded. image size around 8 Mb

change $_FILES["fileToUpload"]["size"] > 5000000 to something higher

I know this response is a little overdue. But for anyone else who might experience a similar error. I recently experienced a similar problem. So I changed the 5000000(which is in decimal) to 5242880(which is in binary), and it worked like MAGIC.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM