PHP上传图片检查类与实例用法--接收图片并安全检查后保存到本地

前言:安全问题

直接将文件上传到服务器是非常危险的行为,攻击者可以将病毒程序伪装成符合上传标准的文件,从而攻击服务器。服务器安全并不是本文提及的重点,但是该检查工具类所使用的原生函数都有对应的伪装破解方法,使用该工具类,并不能完全保证图片上传的安全,希望使用者务必记得这一点。

因此,此处推荐两种较为安全的方式。

  • 前端通过API接口,直接将文件发至第三方云对象储存(例如腾讯云、阿里云、七牛等)

  • 后端接受文件后执行基本检查,调用API或者使用SDK把文件发至第三方云对象储存。

注:该文章与程序不定时更新

调用基本说明

ImageCheck — 基于php的图片检查与保存工具类

文件说明

submit.html 示例前端文件,用于提交图片
handle.php 示例后端文件,用于处理图片
Image.php 实现图片检查与图片保存的工具类
http.php 一个用于http报错的函数文件

使用说明

1.预定义常量:

需要用户预先定义以下常量:

FILE_PATH 上传到服务器的文件路径
UPLOAD_FILE_MAX_B 最大的图片大小
ALLOW_FILE_TYPES 允许的文件类型转化数组

示例如下:


//上传到服务器的文件路径
define('FILE_PATH', 'upload/');
//最大的图片大小
define('UPLOAD_FILE_MAX_B', 2 * 1024 * 1024);
//允许图片类型
define('ALLOW_FILE_TYPES', 'return array(
                "image/png" => ".png",
                "image/x-png" => ".png",
                "image/jpeg" => ".jpg",
                "image/pjpeg" => ".jpg"
            );'
);

2.引入:

接着在处理图片的后端文件中需要引入该工具类与报错函数文件

require "./Image.php";
require "./http.php";

3.创建实例:

try-catch块中创建该工具类的实例,并执行函数。执行函数需要用到的参数如下:
$inputName html文件里 上传文件的input框name属性值
$dir 上传的文件路径,根据具体情况进行调整,可以直接取FILE_PATH

示例代码如下:

try {
    //html文件里 上传文件的input框name属性值
    $inputName = 'file';
//    上传的文件路径 按日期分文件夹,方便日后的文件转移
    $dir = FILE_PATH .
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值