`

PHP检查上传的图片并返回图片的真正类型【扩展名】

    博客分类:
  • PHP
 
阅读更多

 

$file = @fopen('包含路径的文件名', "rb");
$bin = fread($file, 15); //只读15字节 各个不同文件类型,头信息不一样。
$flag = get_type_list($bin);
if(!empty($flag)) {
    echo $flag;
}
else{
    echo '不存在';
}
   
/**
* 得到文件头与文件类型映射表*
* author wengxianhu
* @param $bin string 图片的二进制前一段字符
* @return boolean
*/
public function get_type_list($bin)
{
    $flag = '';
    $array = array(
        array("FFD8FFE1","jpg"),
        array("89504E47","png"),
        array("47494638","gif"),
        array("FFD8FFE000104A46", "jpeg")
//         array("49492A00","tif"),
//         array("424D","bmp"),
//         array("41433130","dwg"),
//         array("38425053","psd"),
//         array("7B5C727466","rtf"),
//         array("3C3F786D6C","xml"),
//         array("68746D6C3E","html"),
//         array("44656C69766572792D646174","eml"),
//         array("CFAD12FEC5FD746F","dbx"),
//         array("2142444E","pst"),
//         array("D0CF11E0","xls/doc"),
//         array("5374616E64617264204A","mdb"),
//         array("FF575043","wpd"),
//         array("252150532D41646F6265","eps/ps"),
//         array("255044462D312E","pdf"),
//         array("E3828596","pwl"),
//         array("504B0304","zip"),
//         array("52617221","rar"),
//         array("57415645","wav"),
//         array("41564920","avi"),
//         array("2E7261FD","ram"),
//         array("2E524D46","rm"),
//         array("000001BA","mpg"),
//         array("000001B3","mpg"),
//         array("6D6F6F76","mov"),
//         array("3026B2758E66CF11","asf"),
//         array("4D546864","mid"),
//         array("D3C3BBA7", 'csv')
    );
   
    foreach ($array as $v)
    {
        $blen = strlen(pack("H*", $v[0])); //得到文件头标记字节数
        $tbin = substr($bin, 0, intval($blen)); ///需要比较文件头长度
        if(strtolower($v[0]) == strtolower(array_shift(unpack("H*", $tbin))))
        {
            $flag = $v[1];
            break;
        }
    }
    return $flag;
}

 

分享到:
评论

相关推荐

    php上传 上传图片 上传文件

    这段代码首先定义了目标文件夹(uploads/),然后获取上传文件的原始名称和扩展名。接着,它会检查文件是否存在、大小是否超过限制以及是否为允许的文件类型。如果所有条件都满足,文件会被移动到目标位置,否则,将...

    php上传图片片接口源代码

    在PHP中,图片上传接口是Web开发中常见的一项功能,用于接收用户上传的图片并进行处理,如格式检查、大小限制以及添加水印等。这个"php图片上传接口"源代码提供了一个完整的解决方案来实现这些功能。下面我们将深入...

    php图片上传并生成缩略图类.zip

    类中的一个重要方法可能就是`checkFileType()`,它会检查上传的文件是否为允许的图片格式,例如JPEG、PNG、GIF等。这通常通过检查文件的MIME类型或文件扩展名来实现。 其次,文件大小的验证是为了防止过大文件导致...

    php图片上传类.zip

    同时,通过检查文件扩展名,确保只允许特定类型的图片文件上传,如.jpg、.png、.gif。 4. **图像处理** 上传后,可能需要对图片进行一些处理,如调整尺寸、裁剪、旋转等。PHP的GD库或Imagick库可以用于这些操作。...

    php上传图片到数据库.zip

    1. 检查上传的文件是否是图片(通过检查文件扩展名或MIME类型)。 2. 验证文件大小,防止过大文件导致服务器内存溢出。 3. 读取上传文件的内容,将其转换为二进制数据。 4. 连接MySQL数据库,创建一个用于存储图片...

    php文件上传及mime类型大全.doc

    在PHP中,文件上传是常见的功能之一,常用于让用户上传...这对于PHP初学者理解文件上传的基本流程是非常有帮助的,但实际开发中还需要考虑更多的安全性措施,如限制文件扩展名、检查文件大小、使用安全的保存路径等。

    [图片动画]PHP+jQuery上传图片并裁切_jquery_php_crop.zip

    - 防止文件注入:确保上传的文件是图片,可以通过检查文件扩展名和MIME类型。 - 图片大小限制:设置上传文件的最大大小,防止DoS攻击。 - 保存路径的安全性:避免直接暴露文件路径,以免被恶意访问。 - 数据库...

    php 实现图片网页上传功能

    - 文件类型验证:使用`$_FILES['file']['type']`检查文件类型,但要注意这可能被篡改,所以还需要通过文件扩展名或读取文件头进行二次验证。 - 文件大小限制:可以通过`$_FILES['file']['size']`检查文件大小,并...

    php + swfupload 实现批量上传图片实例

    PHP作为服务器端语言,负责处理上传的图片并保存到服务器。 首先,我们来看`upload.html`文件。这个文件通常包含HTML结构,其中有一个由SWFUpload创建的按钮。SWFUpload会替换HTML中的原始按钮,提供一个友好的上传...

    简单的图片上传系统PHP

    4. **安全措施**:防止恶意文件上传,例如检查文件扩展名、使用安全的文件命名策略、限制文件大小等。 5. **图片显示**:生成用于在网页上显示的缩略图或原图链接。 6. **错误处理**:处理上传过程中的任何错误,并...

    PHP源码 图片批量上传,不限数量,上传之后马上可以直接显示图片,适合做淘宝宝贝描述

    - 使用`exif_imagetype()`或`getimagesize()`函数检查上传文件是否为图片,避免非图片文件上传。 9. **性能优化**: - 考虑使用队列处理大量图片,避免一次性处理所有文件导致服务器阻塞。 - 对图片进行缩放和...

    自编PHP多图片上传类

    3. **文件验证**:上传类需要包含验证功能,例如检查文件类型(例如只允许JPG、PNG等)、文件大小限制以防止过大文件导致服务器问题,以及检查文件是否为有效图片(如通过`exif_imagetype()`函数)。 4. **文件移动...

    PHP 结合jquery异步上传图片

    // 获取文件扩展名 // 检查文件是否为图像 if(isset($_POST["submit"])) { $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]); if($check !== false) { echo "File is an image - " . $check["mime...

    php将图片保存为不同尺寸图片的图片类实例

    同时,还会根据上传的文件扩展名判断是否为图片类型,以及确定图片保存的具体路径。 `save`函数是图片处理类的关键部分,它负责将临时文件保存到指定位置,并且会做进一步的检查来确保图片可以被成功保存。它首先...

    PHP文件上传类

    - 通过`pathinfo()`函数可以获取文件的扩展名,类的`checkFileType()`方法会对比上传文件的扩展名与允许的文件类型列表,不匹配则拒绝上传。 7. **文件重命名**: - 为了避免文件名冲突,通常会生成一个唯一的...

    基于PHP的jQuery上传图片并裁切源码.zip

    该压缩包文件“基于PHP的jQuery上传图片并裁切源码.zip”主要包含了一套用于网页上实现图片上传和裁切功能的代码实现,利用了PHP作为后端处理语言,前端则依赖于jQuery库。这一功能在现代网页设计中非常常见,尤其是...

    php+jquery+ajax无刷新上传图片

    // 获取文件扩展名 // 检查文件是否已存在 if (file_exists($target_file)) { echo "对不起,文件已经存在。"; $uploadOk = 0; } // 检查文件大小 if ($_FILES["fileToUpload"]["size"] > 500000) { echo ...

    PHPMyWind更换编辑器ckeditor批量上传图片

    1. 检查上传文件的类型和大小,确保符合服务器设定的安全限制。 2. 保存上传的文件到服务器上的指定位置。 3. 返回一个JSON响应,包含上传文件的URL,供CKEditor插入到编辑器中。 在PHPMyWind的背景下,你可以参考...

    PHP上传视频文件图片工具类

    对于视频和图片文件,通常还需要进行额外的验证,比如检查文件扩展名以防止恶意文件上传,或者使用`exif_imagetype`或`mime_content_type`函数来确认文件的实际类型。此外,可能还需要对文件进行重命名,避免同名...

Global site tag (gtag.js) - Google Analytics