上传图片限制文件大小以及尺寸大小 php

在开发过程中,上传图片的基本都这功能的,但是呢客户都是随便上传,不会根据你的指定的需求上传的,这时客户按照我们指定的图片尺寸或文件大小上传,做限制。

如下代码,我已经封装号了,可以直接拿来用。

/**
 * @param $width 宽度
 * @param $height 高度
 * @param $size 文件大小 k为单位
 * @param $path 文件绝对路径
 * @return bool true or false
 */
function getImgSize($width,$height,$size,$path){
    if (!$width || !$height || !$size || !$path){
        return true;
    }
    $imgRes = getimagesize($path);
    $imgSize = ceil(filesize($path) / 1000) . "k"; //获取文件大小
    if ($width != $imgRes[0] || $height != $imgRes[1] || $imgSize > $imgSize){
        clearstatcache();
        return true;
    }
    return false;
}

只要用到的知识,就是getimagesize函数 和 filesize 函数

getimagesize() 函数用于获取图像大小及相关信息,成功返回一个数组,失败则返回 FALSE 并产生一条 E_WARNING 级的错误信息。

语法格式:

array getimagesize ( string $filename [, array &$imageinfo ] )

 注意:$filename 可以本地路径 也 可以上网络路径

getimagesize() 函数将测定任何 GIF,JPG,PNG,SWF,SWC,PSD,TIFF,BMP,IFF,JP2,JPX,JB2,JPC,XBM 或 WBMP 图像文件的大小并返回图像的尺寸以及文件类型及图片高度与宽度。

案例

$array = getimagesize("images/flower_1.jpg");
print_r($array);
Array
(
    [0] => 300
    [1] => 69
    [2] => 3
    [3] => width="300" height="69"
    [bits] => 8
    [mime] => image/jpeg
)

返回结果说明

  • 索引 0 给出的是图像宽度的像素值
  • 索引 1 给出的是图像高度的像素值
  • 索引 2 给出的是图像的类型,返回的是数字,其中1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order),9 = JPC,10 = JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM
  • 索引 3 给出的是一个宽度和高度的字符串,可以直接用于 HTML 的 <image> 标签
  • 索引 bits 给出的是图像的每种颜色的位数,二进制格式
  • 索引 channels 给出的是图像的通道值,RGB 图像默认是 3
  • 索引 mime 给出的是图像的 MIME 信息,此信息可以用来在 HTTP Content-type 头信息中发送正确的信息,如: header("Content-type: image/jpeg");

filesize() 函数返回指定文件的大小。

若成功,则返回文件大小的字节数。若失败,则返回 false 并生成一条 E_WARNING 级的错误。

语法

filesize(filename)

注意:filesize 会有些偏差

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值