无法上传SOME .png文件

时间:2017-07-02 18:55:51

标签: php html file-upload

我尝试使用图片上传功能上传.png文件。一些图像有效,例如this one。但由于某些原因,使用Windows快照工具捕捉的.png图像不起作用。

我收到的错误消息是:"抱歉,只有JPG,JPEG,PNG&允许使用GIF文件。",当然还有#34;抱歉,您的文件未上传。" (见下面的代码)。

我确定我使用Windows快照工具生成的是.png图片,为什么我的代码不会接受它们呢?

<?php
    $target_dir = "i/";
    $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["imgUpload"])) {
        $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
        if($check !== false) {
            $uploadOk = 1;
        } else {
            echo "File is not an image.<br>";
            $uploadOk = 0;
        }
        // Check if file already exists
        if (file_exists($target_file)) {
            echo "Sorry, file already exists.<br>";
            $uploadOk = 0;
        }
        // Check file size
        if ($_FILES["fileToUpload"]["size"] > 5000000) {
            echo "Sorry, your file is too large.<br>";
            $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.<br>";
            $uploadOk = 0;
        }
        // Check if $uploadOk is set to 0 by an error
        if ($uploadOk == 0) {
            echo "Sorry, your file was not uploaded.<br>";
        // if everything is ok, try to upload file
        } else {
            $path_parts = pathinfo($target_file);
            $tmpFileName = round(microtime(true));
            $newfilename = $tmpFileName . '.' . $path_parts['extension'];

//Et cetera et cetera

我的上传代码几乎完全基于W3C's示例。 任何人都可以解释这个问题吗?

1 个答案:

答案 0 :(得分:0)

扩展可以有任何案例。

您需要不区分大小写的比较。