php 文件上传后缀名与文件类型对照表(几乎涵盖所有文件)

yizhihongxing

首先需要明确的是,文件上传是网站开发中常用的功能之一,但是需要注意上传文件的类型和格式,避免网站被恶意攻击者利用漏洞来上传危险文件。

为了方便开发者识别文件类型和合法上传文件格式,一些固定的后缀名和文件类型对照表已经被制定和广泛使用。其中,php文件上传后缀名与文件类型对照表汇总了大部分常用的文件类型和对应的后缀名,可以供开发者参考。

下面来介绍如何使用该对照表。首先要明确如何获取上传文件的格式信息。在PHP中,可以通过$_FILES全局变量中的type属性获取文件的MIME类型信息。这个MIME类型与文件后缀名是对应的,通过对照表,就可以得到这个文件的合法后缀名,并进行验证。

示例一:检查图片上传格式

前端界面可能提供了一个上传图片的功能,我们需要检查上传图片的格式是否正确。假设前端提交的表单中包含一个文件输入框和一个提交按钮,可以通过以下代码对上传的图片格式进行验证:

//获取上传文件的MIME类型
$mime = $_FILES['image']['type'];
//定义合法的文件格式
$allowed = [
    'jpg' => 'image/jpeg',
    'png' => 'image/png',
    'gif' => 'image/gif',
];
//根据MIME类型获取后缀名
$ext = array_search($mime, $allowed);
//判断是否为合法文件格式
if ($ext === false) {
    echo "上传图片格式不合法";
} else {
    //进行其他操作,比如保存上传的图片
}

在上述代码中,首先获取上传的文件的MIME类型,然后定义了一个包含合法文件格式和对应MIME类型的数组。接着根据获取到的MIME类型查找对照表,获取对应的合法后缀名。最后,判断获取到的后缀名是否在合法文件格式数组中,如果是,就可以进行其他操作,否则提示错误信息。

示例二:禁止上传危险文件

假设在系统中,管理员可以上传一些配置文件,但是存在一些危险的文件类型必须禁止上传,比如PHP脚本文件,在这种情况下,可以使用对照表禁止上传危险文件。

//获取上传文件的MIME类型
$mime = $_FILES['config']['type'];
//定义不允许上传的文件格式
$denied = [
    'php' => 'application/x-php',
    'aspx' => 'application/octet-stream'
];
//根据MIME类型获取后缀名
$ext = array_search($mime, $denied);
//判断是否为危险的文件格式
if ($ext !== false) {
    echo "上传危险文件";
} else {
    //进行其他操作,比如保存上传的配置文件
}

在上述代码中,$denied数组定义了不允许上传的危险文件格式和对应的MIME类型,如果上传的文件类型在数组中被定义了,则提示上传危险文件。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php 文件上传后缀名与文件类型对照表(几乎涵盖所有文件) - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • PHP PDO函数库(PDO Functions)

    PHP PDO(PHP数据对象)是一种轻量级的、跨平台的数据库抽象层,允许开发者在不需要使用特定数据库的语法和函数的情况下轻松访问各种类型的数据库系统。而PHP PDO 函数库即为处理PHP PDO的一些基本函数,下面我们来进行完整的介绍。 连接数据库 使用PHP PDO 连接数据库时,需要指定数据库的类型、主机名、数据库名、用户名以及密码等一些必要的参数。…

    PHP 2023年5月25日
    00
  • php利用header函数下载各种文件

    下面是详细的“php利用header函数下载各种文件”的攻略,包含两条示例说明。 一、header函数介绍 header函数是PHP中的一个重要函数,它可以向浏览器发送HTTP头部信息,包括响应码、Content-Type、Location、Expires、Cache-Control等。其中Content-Disposition头部信息可以用于实现文件下载。…

    PHP 2023年5月23日
    00
  • .NET c# 单体模式(Singleton)

    下面我将详细讲解“.NET c# 单体模式(Singleton)”的完整攻略。 什么是单体模式? 单体模式,也被称为单例模式,是一种创建型设计模式。它在应用程序需要访问全局对象时使用。单体模式确保整个应用程序中只存在一个对象实例并提供全局访问点访问该实例。 单体模式的实现方式 在 .NET c# 中,单体模式的实现方式如下: public sealed cl…

    PHP 2023年5月27日
    00
  • php 字符串压缩方法比较示例

    当我们处理大量的字符串数据时,为了减小数据的体积,我们通常需要进行字符串压缩。在PHP中,有多种压缩字符串的方法,包括gzip,Deflate和LZF等。下面我将结合示例,详细讲解PHP中的字符串压缩方法比较。 1. gzip压缩 gzip是一种较为常用的字符串压缩方法,它能够在减小文件大小的同时保持文件内容的完整性。PHP内置了gzip压缩函数gzcomp…

    PHP 2023年5月26日
    00
  • PHP加密函数与解密函数详解

    以下是关于“PHP加密函数与解密函数详解”的完整使用攻略: 基础知识 在了解PHP加密函数与解密函数之前,需要掌握一些基知识,包括加密的基本概念、加密的应用场景、加密的优缺点等。以下是一些常见的基础知识: 加密的基本概念,包括加密的定义、加密的特点等。 加密的应用场景,包括加密的常见应用场景、加密的优势等。 加密的优缺点,包括加密优点、加密的缺点等。 使用攻…

    PHP 2023年5月12日
    00
  • PHP入门教程之上传文件实例详解

    对于“PHP入门教程之上传文件实例详解”,本篇攻略将分为以下几个部分进行讲解: 上传文件的基本原理 如何编写PHP文件上传功能 如何处理上传的文件 一个完整的示例 示例解析 1. 上传文件的基本原理 在HTTP协议中,要上传文件,我们需要使用HTTP POST请求,并且使用“multipart/form-data”格式发送请求。具体来说,我们需要在请求头中设…

    PHP 2023年5月26日
    00
  • PHP简单获取随机数的常用方法小结

    以下是“PHP简单获取随机数的常用方法小结”的完整攻略: 1. 使用 rand 函数 使用 PHP 内置的 rand 函数可以快速获取随机数。这个函数接受两个参数,分别是所需要的随机数的最小值和最大值。函数将返回一个在这个范围内的随机整数。 下面是一个例子,获取一个 1 到 100 之间的随机整数: $randomNum = rand(1, 100); ec…

    PHP 2023年5月26日
    00
  • php中怎么搜索相关联数组键值及获取之

    在PHP中,可以使用array_keys()和array_values()函数分别获取数组的键和值,然后使用array_search()函数查找特定的键或值在数组中的位置。以下是具体的步骤: 第一步:创建一个关联数组 首先,我们需要创建一个关联数组,作为实验对象,以便演示如何搜索相关联数组的键值。例如: $students = array( "Jo…

    PHP 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部