PHP检查上传的文件是否是图片

标签 php image upload

我正在尝试创建用户头像。我只是想确保它的安全。检查文件是否为实际图像的最佳方法是什么,而不是其他任何东西。

我试过了

$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if($check !== false) {
        echo "File is an image - " . $check["mime"] . ".";

    } else {
        echo "File is not an image.";
    }

虽然这似乎适用于某些图像,但其他图像(如照片)似乎使其失败。我用手机拍摄的照片似乎显示为“文件不是图像”,而其他照片显示为图像。

我也一直在检查文件格式

if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
    echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";

}

最佳答案

可以使用php5的功能

mime_content_type(字符串 $文件名)

PHP 文档在这里:http://php.net/manual/fr/function.mime-content-type.php

例如,这将返回“image/jpg”。解析结果,瞧!这样您就不必遍历所有不同的类型。

关于PHP检查上传的文件是否是图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41866743/

相关文章:

android - 为联系人添加照片

Android:上传图片到图片主机的简单方法

php - 插入时出现奇怪的 Mysql 问题

php - 如何在不使用 strip_tags 的情况下从变量中删除 <div> 标签?

php - 错误日志在 laravel 5.3 中被截断

php - 上传图片,然后将文件路径放入表单中

angular - 拖放图片上传,angular 4

php - Laravel 中的 Policy Authorize 与 Can Function 有什么区别?

javascript - 图片显示中的浏览器依赖问题

java - Runnable jar 使用 java -jar 运行良好,但双击时出现问题