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;
}

转载于:https://www.cnblogs.com/lsl321/p/7953618.html

上传单.多个文件的函数封装相关推荐

  1. php文件操作(最后进行文件常用函数封装)

    文件信息相关API $filename="./1-file.php";//filetype($filename):获取文件的类型,返回的是文件的类型echo '文件类型为:',fi ...

  2. php 函数封装上传,PHP(多)文件上传实现和函数封装

    一.PHP 文件上传的相关知识 对 PHP 文件上传的相关知识总结主要是参考老师演示的代码和 drawer.php(某大神写的 PHP 单文件版的服务器文件管理端) 1. php 关于文件上传的配置文 ...

  3. express,multer,jQuery前端后端上传单个文件

    文章目录 先安装基本的模块 附上multer的github当中别人汉化的API文档 开始创建基本express(上传图片) 测试是否正常 前端部分 前端需要注意的 multer使用 multer({} ...

  4. data后缀文件解码_封装ThinkPHP6.0通用文件上传

    php中文网最新课程 每日17点准时技术干货分享 本文为php中文网认证作者:"wpj"投稿,欢迎加入php中文网有偿投稿计划! 本文实例讲述了封装ThinkPHP6通用文件上传方 ...

  5. js进阶ajax函数封装(匿名函数作为参数传递)(封装函数引入文件的方式非常好用)...

    js进阶ajax函数封装(匿名函数作为参数传递)(封装函数引入文件的方式非常好用) 一.总结 2.匿名函数作为参数传递 二.js进阶ajax函数封装 ajax1.js 1 function ajax( ...

  6. formdata多文件上传_如何使用FormData轻松上传单个或多个文件

    formdata多文件上传 In this post, we'll learn about the FormData interface available in modern web browser ...

  7. webflow ajax,java开发之spring webflow实现上传单个文件及多个文件功能实例

    本文实例讲述了java开发之spring webflow实现上传单个文件及多个文件功能.分享给大家供大家参考,具体如下: 上传单个文件 准备 1. 如果你项目中使用了spring security的话 ...

  8. 初识C语言之函数封装篇——带你嗅探万花从中的清香(上)

    函 数 概 述 构成C程序的基本单元是函数.函数中包含程序的可执行代码. 每个C程序的入口和出口都位于main函数之中.编写程序时,并不是将所有的内容都放在主函数main中.为了方便规划.组织.编写和 ...

  9. springboot上传下载文件(4)--上传下载工具类(已封装)

    因为在做毕设,发现之前的搭建ftp文件服务器,通过ftp协议无法操作虚拟机临时文件,又因为ftp文件服务器搭建的比较麻烦:而 hadoop的HDFS虽然可以实现,但我这里用不到那么复杂的:所以我封装了 ...

最新文章

  1. SpringBoot jetty webflux
  2. MySql中的varchar类型
  3. Windows Mobile 5
  4. 前端学习(94):css重置样式
  5. 无法打开用户默认数据库,登录失败,用户‘sa’登录失败,错误:4064的解决方法...
  6. CentOS 7 防火墙操作
  7. linux中如何统计目录中的文件,[Linux目录文件]在Linux中统计目录内文件
  8. 使用python脚本定时备份web网站
  9. 和feign的区别_Feign的传参研究
  10. 前端基础-CSS如何布局以及文档流,对于新手来说,特别有用
  11. cba篮球暂停次数和时间_CBA一场比赛每支球队可以叫多少次暂停
  12. 达摩院年终发布:2022十大科技趋势
  13. Intel DCM 携手DELL共同推出关于DCIM的联合调研
  14. 前端开发:报错Error in created hook:”SyntaxError:Unexpected token u in JSON at position 0”…解决方法
  15. 9个超绚丽的HTML5 3D图片动画特效
  16. 【产业互联网周报】微软、谷歌再布局边缘云;美团放弃公有云业务;开普云登陆科创板...
  17. Kubernetes 之 集群二进制部署
  18. idea设置类注释和方法注释(贼详细)
  19. linux ln -sv命令,linux ln 命令详解
  20. 边缘计算在视频直播场景的应用与实践

热门文章

  1. 修改yum源的资源路径baseurl
  2. PostgreSQL中如何得到一个随机的字符
  3. 答题获得思科T-shirt
  4. Web前端JavaScript笔记(3)对象
  5. simpledateformat格式_大厂都是怎么用Java8代替SimpleDateFormat?
  6. 递归下降分析器的设计java_数据结构(Java版)教与学(48和60学时教学大纲)
  7. 倍投计算器工具_天天基金网上实用的小工具
  8. Selenium系列文章汇总
  9. 今日恐慌与贪婪指数为78 贪婪程度有所缓解
  10. SAP License:SAP All-in-One产品特点