首页/ 填坑/ 文章详情

PHP 简易过滤上传多媒体文件

PHP 过滤 上传 多媒体 发布于 04-27

想要降低网站对个人维护的依赖,人个得拥抱开放。作为网站最高权限的管理者,需要制定大的方向,适当的放开权限让游客参与进网站的建设。

无规则不成方圆,事前设置好前置条件,逐步引导用户的行为。限制的同时,加以引导,让用户成为一名合格的参与者。举个例子:充许用户修改自己的头像。除了在前端做了种种限制,服务器也不能掉以轻心,需要一套相对应过滤多毁体的程序。

获取文件后缀:

PHP/**
 * 获取文件后缀
 * @method getFileExt
 * @param string $fileName 文件名
 * @return string
 */
public function getFileExt($fileName) {
    $fileName = strtolower($fileName);
    $data = explode('.', $fileName);
    return array_pop( $data );
}

是否充许的文章后缀:

PHP/**
 * 是否充许的文章后缀
 * @method isAllowFileExt
 * @param string $fileType 文章类型
 * @param string $ext 后缀类型
 * @param array $data 充许的后缀数组
 * @return boolean
 */
public function isAllowFileExt($fileType, $ext, $data) {
    $allow = false;
    foreach($data as $index => $value){
        if( $ext == $index ){
            foreach($value as $key => $item){
                if( $fileType == $item ){
                    $allow = true;
                    break;
                }
            }
        }
    }

    return $allow;
} 

限制文件大小:

PHP/**
 * 限制文件大小
 * @method limitFileSize
 * @param string $fileSize 文件大小
 * @param integer $limit 默认2M
 * @return  array
 */
public function limitFileSize($fileSize, $limit = 2) {
    if($fileSize > $limit * 1024 * 1024){
        return false;
    }

    return true;
} 

过滤多媒体文件思路:获得上传文件后缀,限制充许上传的文件的类型,限制充许文件上传的大小。三个限制条件,可以自由组合,由此将其分离出来,独自成函数,为真正上传文件函数做好辅垫。

上传图片文件:

PHP/**
 * 上传图片文件
 * @method uploadImage
 */
public function uploadImage(){
    $mimes = [
        'gif'   => 'image/gif',
        'jpg'   => [
            'image/jpeg',
            'image/pjpeg',
        ],
        'png'   => [
            'image/png',
            'image/x-png',
        ],
    ];

    $fileName = $_FILES["file"]['name'];
    $fileType = $_FILES["file"]['type'];
    $fileSize = filesize($_FILES["file"]['tmp_name']);

    $ext = $this->getFileExt($fileName);
    if(!$this->isAllowFileExt($fileType, $ext, $mimes)) {
        exit('仅支持jpg/png/gif格式的文件')
    }

    if(!$this->limitFileSize($fileSize)){
        exit('文件不能大于2M')
    }

    //do something
} 

※ 限制不同的文件后缀,可以制作不同的多媒体文件上传,这里只展示最常见的图片多媒体上传。

文章评论0 records

最新 最早

0

最新评论Latest comments

HentaiCatHentaiCat 2020-12-30 10:22
考科目二全程很紧张,考了三次才过,有次侧方入库直接pass,100分扣完,呜呜呜~
猫猫酱猫猫酱 2020-11-12 10:56
一入多肉深似海,说多都是泪
soulkunsoulkun 2020-11-05 15:54
IconFont的图标真的很好用!!!
无限链霉球菌无限链霉球菌 2020-11-03 11:41
药店,了解一下(`・ω・´)
HentaiCatHentaiCat 2020-11-02 15:28
(ಡωಡ)很实用,直接拿走...