Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Can';不要上传一些.png文件_Php_Html_File Upload - Fatal编程技术网

Php Can';不要上传一些.png文件

Php Can';不要上传一些.png文件,php,html,file-upload,Php,Html,File Upload,我尝试用图像上传功能上传.png文件。例如,一些图像起了作用。但由于某些原因,使用Windows快照工具拍摄的.png图像无法工作 我收到的错误消息是:“对不起,只允许使用JPG、JPEG、PNG和GIF文件。”,当然还有“对不起,您的文件没有上传。”(请参阅下面的代码) 我确信我用Windows快照工具生成的是.png图像,那么为什么我的代码不接受它们呢 <?php $target_dir = "i/"; $target_file = $target_dir . base

我尝试用图像上传功能上传.png文件。例如,一些图像起了作用。但由于某些原因,使用Windows快照工具拍摄的.png图像无法工作

我收到的错误消息是:“对不起,只允许使用JPG、JPEG、PNG和GIF文件。”,当然还有“对不起,您的文件没有上传。”(请参阅下面的代码)

我确信我用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

扩展可以有任何情况


你需要一个不区分大小写的比较。

我的心理调试技能告诉我你的问题是
“png”!=“PNG”
.Oh。。我不知道这有什么关系。我试试看。为什么有些图像是PNG,而另一些只是PNG呢?天啊,这很有效。天哪,这太尴尬了。你真是个通灵的人。.gif是否也可以与.gif或类似的格式出现?是的;扩展并不总是小写的。