首页/ 填坑/ 文章详情

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

PHP 过滤 上传 多媒体 发布于 2021-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

凡心的仙人凡心的仙人 03-18 14:35
谢谢你了!
rantrismrantrism 2023-04-03 11:27
您好~我是腾讯云开发者社区运营,关注了您分享的技术文章,觉得内容很棒,我们诚挚邀请您加入腾讯云自媒体分享计划。完整福利和申请地址请见:https://cloud.tencent.com/developer/support-plan 作者申
唐牛才是食神唐牛才是食神 2022-06-15 10:51
(*°▽°*)八(*°▽°*)♪,解决了
唐牛才是食神唐牛才是食神 2022-06-15 10:49
发现不得了的东西,今晚回去好好研究下...
胖螺胖螺 2022-02-04 00:58
( ゜- ゜)つロ 在写了在写了。看到也有些感慨。因为站长前年在我原博客的留言,让我毅然选择去深造,选择读研,曾经我想过挺多东西的,还是自己本专业的适合我自己。在这先表达感谢。新年快乐!