全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

PHP实现上传多文件示例代码

上传多文件

1.在对多文件信息进行操作前,需要构建文件信息,通过buildInfo函数将三维数组转换成便于文件操作的二维数组。

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

单文件和多文件的判断在于文件数组的类型,单文件(二维数组)、多文件(三维数组)。

2.文件上传函数及参数

复制代码 代码如下:
function uploadFiles($path = "uploads",  $allowExt = array("jpg", "gif", "png", "wbmp"), $maxSize = 1048576, $imgFlag = true)

path,保存目录。allowExt,允许扩展名数组。maxSize最大上传文件大小。imgFlag,图片文件标识符。

3.判断保存文件的目录是否存在

if(!file_exists($path)){
    mkdir($path, 0777, true);
  }

4.传入构建好的文件信息,保存到files

$i = 0;
$files = buildInfo();

5.判断文件的error类型

foreach ($files as $file){
    if($file['error'] == UPLOAD_ERR_OK){
}else{
    switch ($file['error']){
      case 1:
        $mes = "超过配置文件上传文件大小";
        break;
      case 2:
        $mes = "超过了表单设置";
        break;
      case 3:
        $mes = "文件部分被上传";
        break;
      case 4:
        $mes = "没有文件上传";
        break;
      case 6:
        $mes = "没找到临时目录";
        break;
      case 7:
        $mes = "文件不可写";
        break;
      case 8:
        $mes = "由于PHP的扩展程序中断了文件上传";
        break;
    }

6.限制文件类型

if($file['error'] == UPLOAD_ERR_OK){
      $ext = getExt($file['name']);
      if(!in_array($ext, $allowExt)){
        exit("非法文件类型");
      }

7.限制是否为真的图片类型

if($imgFlag){
        if(!getimagesize($file['tmp_name'])){
          exit("不是真的图片类型");
        }
      }

8.判断文件大小

if($file['size'] > $maxSize){
        exit("文件过大");
      }

9.判断文件是否通过post上传

if(!is_uploaded_file($file[‘tmp_name'])){ 
exit(“文件不是通过HTTP POST上传”); 
}

10.重命名文件(唯一且不重复)并保存到目标目录

$filename = getUniName().".".$ext;
$destination = $path."/".$filename;
if(move_uploaded_file($file['tmp_name'], $destination)){
        $mes = "文件上传成功";
        $file['name'] = $filename;
        unset($file['error'], $file['tmp_name']);
        $uploadedFiles[$i] = $file;
        $i++;
      }

重写文件信息数组中的name,删除变量file[‘error']和file[‘tmp_name']。最后将成功上传的文件保存到uploadedFiles数组中。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# php上传多个文件  # php多文件上传例子  # php多文件上传代码  # 简单PHP上传图片、删除图片实现代码  # PHP文件上传实例详解!!!  # 简单的PHP图片上传程序  # PHP 上传文件大小限制  # PHP 图片文件上传实现代码  # php 文件上传实例代码  # php上传文件中文文件名乱码的解决方法  # 两种php实现图片上传的方法  # PHP实现视频文件上传完整实例  # 上传  # 文件上传  # 组中  # 扩展名  # 重写  # 在对  # 过大  # 表单  # 转换成  # 大家多多  # 是否存在  # 不是真的  # 重命名  # 并保存  # 判断是否  # 保存文件  # 超过了  # gif  # move_uploaded_file  # return 


相关文章: 魔毅自助建站系统:模板定制与SEO优化一键生成指南  代购小票制作网站有哪些,购物小票的简要说明?  建站ABC备案流程中有哪些关键注意事项?  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何用腾讯建站主机快速创建免费网站?  再谈Python中的字符串与字符编码(推荐)  制作充值网站的软件,做人力招聘为什么要自己交端口钱?  建站主机CVM配置优化、SEO策略与性能提升指南  如何快速搭建高效可靠的建站解决方案?  如何做网站制作流程,*游戏网站怎么搭建?  ,网站推广常用方法?  韩国服务器如何优化跨境访问实现高效连接?  如何获取开源自助建站系统免费下载链接?  在线制作视频网站免费,都有哪些好的动漫网站?  制作国外网站的软件,国外有哪些比较优质的网站推荐?  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  孙琪峥织梦建站教程如何优化数据库安全?  自助网站制作软件,个人如何自助建网站?  如何快速上传建站程序避免常见错误?  如何快速搭建高效WAP手机网站吸引移动用户?  学校免费自助建站系统:智能生成+拖拽设计+多端适配  佛山网站制作系统,佛山企业变更地址网上办理步骤?  建站之星代理商如何保障技术支持与售后服务?  C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)  广州顶尖建站服务:企业官网建设与SEO优化一体化方案  如何快速搭建高效WAP手机网站?  香港服务器建站指南:免备案优势与SEO优化技巧全解析  大同网页,大同瑞慈医院官网?  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  建站主机选购指南与交易推荐:核心配置解析  c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】  购物网站制作公司有哪些,哪个购物网站比较好?  建站之星在线版空间:自助建站+智能模板一键生成方案  如何快速查询网址的建站时间与历史轨迹?  ,有什么在线背英语单词效率比较高的网站?  单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?  沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?  开源网站制作软件,开源网站什么意思?  模具网站制作流程,如何找模具客户?  如何快速完成中国万网建站详细流程?  焦点电影公司作品,电影焦点结局是什么?  如何快速使用云服务器搭建个人网站?  制作门户网站的参考文献在哪,小说网站怎么建立?  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  网站制作话术技巧,网站推广做的好怎么话术?  建站主机选哪家性价比最高?  TestNG的testng.xml配置文件怎么写  清除minerd进程的简单方法 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。