php封装一个多文件上传

php多文件上传其实和单文件上传差不多,就是加个for循环就好了
废话不多少上代码

html 页面

<html>
<head>
    <title>文件上传</title>
    <meta charset = "utf-8"/>
</head>
<body>
        <form action = "linkUpload.php" method = "post" enctype ="multipart/form-data">
            <input type = "file" name = "file[]"/><br/>
            <input type = "file" name = "file[]"/><br/>
            <input type = "file" name = "file[]"/><br/>
            <input type = "submit" value ="提交"/>
        </form>
    </body>
</html>

封装的多文件的方法(要存到一个新的路径中)

<?php
/*
*封装一个多文件上传
*@prame string $key
*@prame string $path
*@prame int $maxSize
*@prame array $allowMime
*@prame array $type
*@prame bool $isFilename
*@auther wulei
*/
function moreload($key,$path ,$maxSize,$allowMime,$type,$isFilename){
    for($i=0;$i<count($_FILES[$key]['name']);$i++){
        //判断错误信息
        if($_FILES[$key]['error'][$i]){
            switch($_FILES[$key]['error'][$i]){
                case 1:
                    $str = "上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。";
                    break;
                case 2:
                    $str = "上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值.";
                case 3:
                    $str = ",文件只有部分被上传。 ";
                    break;
                case 4:
                    $str = "没有文件被上传。";
                    break;
                case 6:
                    $str = "找不到临时文件夹";
                    break;
                case 7:
                    $str = "文件写入失败。";
                    break;
            }
            return [0,$i,$str];
        }
        //判断文件大小
        if($_FILES[$key]['size'][$i]>$maxSize){
            return [0,'文件超过最大限制'];
        }
            //判断mime类型
        if(!in_array($_FILES[$key]['type'][$i],$allowMime)){
            return [0,'没有符合的mime类型'];
        }
        //判断文件的后缀
        $info = pathinfo($_FILES[$key]['name'][$i]);
        var_dump($info);
        $sub = $info['extension'];
        if(!in_array($sub,$type)){
            return [0,'没有符合的文件名后缀'];
        }
        //文件名是否为随机
        if($isFilename){
            $name = uniqid().'.'.$sub;
        }else{
            $name = $_FILES[$key]['name'][$i];
        }
        //拼接路径
        $newpath = rtrim($path,'/').'/'.date('Y/m/d').'/';

        //判断不存在就创建文件
        if(!file_exists($newpath)){
            mkdir($newpath,0777,true);
        }
        //判断文件是否上传成功
        if(is_uploaded_file($_FILES[$key]['tmp_name'][$i])){
            if(move_uploaded_file($_FILES[$key]['tmp_name'][$i],$newpath.$name)){
                echo '上传成功';
                $arr[] = [1,$newpath.$name];
            }else{
                return [0,'上传失败'];
            }
        }else{
            return [0,'文件不存在'];
        }
    }
    return $arr;
}

传入到数据库中

<?php
include 'moreUpload.php';
include 'common.php';
$data = moreload('file','image',pow(1024,2)*2,[
            'image/png','image/jpeg','image/gif','image/wbmp'
        ],['png','jpg','jpeg','jpe','pjpeg','gif','wbmp','bmp'],true);


for($i=0;$i<count($data);$i++){

    if($data[$i][0]){

        $date['img_path'.$i] = $data[$i][1];
    }

}
 insert($link,'image',$date);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值