【问题标题】:image extension is not showing in PHP file-uploadPHP文件上传中未显示图像扩展名
【发布时间】:2019-01-12 04:01:35
【问题描述】:

我正在使用这段代码来处理上传多个图像的输入,并调整它们的大小。它有效,但有一件小事不想做它的工作。我尝试获取的扩展名未显示在文件名中。

这是问题所在的一段代码:

    if(isset($_POST["submit"])) {
    if(is_array($_FILES)) { 
        foreach ($_FILES['fileToUpload']['tmp_name'] as $uploadedFile) { 
        //$uploadedFile = $_FILES['fileToUpload']['tmp_name'];
            if($uploadedFile <> ''){
                $sourceProperties = getimagesize($uploadedFile);
                $newFileName = time();
                $dirPath = "../images/";
                $ext = pathinfo($_FILES['fileToUpload']['name'], PATHINFO_EXTENSION);
                $imageType = $sourceProperties[2];

                switch ($imageType) {

                    case IMAGETYPE_PNG:
                        $imageSrc = imagecreatefrompng($uploadedFile); 
                        $tmp = imageResize($imageSrc,$sourceProperties[0],$sourceProperties[1]);
                        imagepng($tmp,$dirPath. $newFileName. "_thump.". $ext);
                        break;           

                    case IMAGETYPE_JPEG:
                        $imageSrc = imagecreatefromjpeg($uploadedFile); 
                        $tmp = imageResize($imageSrc,$sourceProperties[0],$sourceProperties[1]);
                        imagejpeg($tmp,$dirPath. $newFileName. "_thump.". $ext);
                        break;

                    case IMAGETYPE_GIF:
                        $imageSrc = imagecreatefromgif($uploadedFile); 
                        $tmp = imageResize($imageSrc,$sourceProperties[0],$sourceProperties[1]);
                        imagegif($tmp,$dirPath. $newFileName. "_thump.". $ext);
                        break;

                    default:
                        echo "<div class='alert alert-danger'>File is not an image.</div>";
                        exit;
                        break;
                }

            }
         }
     }
}

例如,它现在保存的内容在我的数据库中称为 1547265041_thump.

出了什么问题?

【问题讨论】:

    标签: php image file upload


    【解决方案1】:

    检查$ext 是否获得扩展。 如果它没有得到检查$_FILES['fileToUpload']['name'] 阅读与否。 您可以通过echo他们进行调试。

    检查你的数据库字符长度。 希望对您有所帮助。

    【讨论】:

    • 感谢您的回答。我已经检查过了,$ext 是空的。我应该已经在问题中说过了。
    • 您检查$_FILES['fileToUpload']['name'] 是否正确?
    • 我尝试了 'print_r' 因为它似乎是一个数组。上传图片时的输出是 Array ( [0] => example.jpeg ) @damnguy
    • 现在我知道这是一个数组,我认为它不起作用是合乎逻辑的。我做了一个计数器来找出数组 ext,这很有效。谢谢!
    【解决方案2】:

    $_FILES['fileToUpload']['name'] 似乎是一个数组,这是合乎逻辑的,因为您可以一次上传多个图像。为了循环,我在 foreach 中添加了一个计数器来输出扩展名。现在效果很好!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多