• 上传单.多个文件的函数封装


    function buildInfo(){
    if(!$_FILES){
    return ;
    }
    $i=0;
    foreach($_FILES as $v){
    //单文件
    if(is_string($v['name'])){
    $files[$i]=$v;
    $i++;
    }else{
    //多文件
    foreach($v['name'] as $key=>$val){
    $files[$i]['name']=$val;
    $files[$i]['size']=$v['size'][$key];
    $files[$i]['tmp_name']=$v['tmp_name'][$key];
    $files[$i]['error']=$v['error'][$key];
    $files[$i]['type']=$v['type'][$key];
    $i++;
    }
    }
    }
    return $files;
    }

    //上传文件
    function uploadFile($path="uploads",$allowExt=array("gif","jpeg","png","jpg","wbmp"),$maxSize=2097152,$imgFlag=true){
    if(!file_exists($path)){
    mkdir($path,0777,true);
    }
    $i=0;
    $files=buildInfo();
    if(!($files&&is_array($files))){
    return ;
    }
    foreach($files as $file){
    if($file['error']===UPLOAD_ERR_OK){
    $ext=getExt($file['name']);
    //检测文件的扩展名
    if(!in_array($ext,$allowExt)){
    exit("非法文件类型");
    }
    //校验是否是一个真正的图片类型
    if($imgFlag){
    if(!getimagesize($file['tmp_name'])){
    exit("不是真正的图片类型");
    }
    }
    //上传文件的大小
    if($file['size']>$maxSize){
    exit("上传文件过大");
    }
    if(!is_uploaded_file($file['tmp_name'])){
    exit("不是通过HTTP POST方式上传上来的");
    }
    $filename=getUniName().".".$ext;
    $destination=$path."/".$filename;
    if(move_uploaded_file($file['tmp_name'], $destination)){
    $file['name']=$filename;
    unset($file['tmp_name'],$file['size'],$file['type']);
    $uploadedFiles[$i]=$file;
    $i++;
    }
    }else{
    switch($file['error']){
    case 1:
    $mes="超过了配置文件上传文件的大小";//UPLOAD_ERR_INI_SIZE
    break;
    case 2:
    $mes="超过了表单设置上传文件的大小"; //UPLOAD_ERR_FORM_SIZE
    break;
    case 3:
    $mes="文件部分被上传";//UPLOAD_ERR_PARTIAL
    break;
    case 4:
    $mes="没有文件被上传1111";//UPLOAD_ERR_NO_FILE
    break;
    case 6:
    $mes="没有找到临时目录";//UPLOAD_ERR_NO_TMP_DIR
    break;
    case 7:
    $mes="文件不可写";//UPLOAD_ERR_CANT_WRITE;
    break;
    case 8:
    $mes="由于PHP的扩展程序中断了文件上传";//UPLOAD_ERR_EXTENSION
    break;
    }
    echo $mes;
    }
    }
    return $uploadedFiles;
    }

  • 相关阅读:
    python删除列表重复元素
    maven常用打包命令
    python开发之函数
    手把手教你用Strace诊断问题
    python引用列表--10
    Python中open函数怎么操作文件--9
    python数据操作--8
    图解源码之FutureTask篇(AQS应用)
    图解源码之java锁的获取和释放(AQS)篇
    图解线程池工作机制,手写线程池?
  • 原文地址:https://www.cnblogs.com/lsl321/p/7953618.html
Copyright © 2020-2023  润新知