1、webform (注意:name后面一定要加[]号)

  1. <form method="post" enctype="multipart/form-data" action="http://127.0.0.1/mobile/public/api/wx/user/upload" >
  2. First name: <input type="file" name="file[]" /><br />
  3. First name: <input type="file" name="file[]" /><br />
  4. Last name: <input type="text" name="token" /><br />
  5. <input type="submit" value="提交" />
  6. </form>

  注:HTML5的文件已经支持多文件上传:

  1. <input type="file" name="file[]"  multiple/>

2、后端处理

  1. /*上传文件到服务器*/
  2. public function uploadFile(\Illuminate\Http\Request $request)
  3. {
  4.  
  5. $this->validate($request,array('token'=>'required|string'));
  6. $this->validationUser($uid,$this->authService);
  7. if($request->hasFile('file')) {
  8. $root = $request->server('DOCUMENT_ROOT');
  9. $file = $request->file('file');
  10. //return var_dump($file);
  11. $filePath=[]; // 定义空数组用来存放图片路径
  12. foreach ($file as $k => $v) {
  13. // 判断图片上传中是否出错
  14. if (!$v->isValid()) {
  15. $this->apiReturn("上传图片出错,请重试!",1);
  16. }
  17. //此处防止没有多文件上传的情况
  18. if(!empty($v)){
  19. if ($v->getSize() / 1024 > 600)
  20. return $this->apiReturn("请检查您上传的文件不能大于600KB", 1);
  21. $fileName = strtolower($v->getClientOriginalName());
  22. if (!preg_match('/\.(jpg|jpeg|png|gif)$/', $fileName))
  23. return $this->apiReturn("您只能上传通用的图片格式", 1);
  24. $destinationPath = '/mobile/resources/uploads/' . date('Ymd');
  25. $fileExtendName = substr($fileName, strpos($fileName, '.'));
  26. $realPath = $root . $destinationPath;
  27. if (!file_exists($realPath))
  28. mkdir($realPath);
  29. $newFileName = uniqid() . mt_rand(1, 100000) . $fileExtendName;
  30. $v->move($realPath, $newFileName);
  31. $filePath[]=$destinationPath . '/' . $newFileName;
  32. }}
  33. return $this->apiReturn(json_encode($filePath), 0);
  34. }
  35. else
  36. return $this->apiReturn('请选择文件再上传', 1);
  37. }

原生多文件上传:

  1. /*多文件上传*/
  2. public function uploadImg($file_name,$dir,$format='string')
  3. {
  4. $file = $_FILES[$file_name];
  5. if($file) {
  6. $root =$_SERVER['DOCUMENT_ROOT'];
  7. $filePath=[]; // 定义空数组用来存放图片路径
  8. $fileNumber=count($file['name']);
  9. for($i=0;$i<$fileNumber;$i++) {
  10.  
  11. //此处防止没有多文件上传的情况
  12. if(!empty($file['name'][$i])){
  13. if ($file['size'][$i] / 1024 > 600)
  14. {
  15. return ['error'=>"请检查您上传的文件不能大于600KB"];
  16. }
  17.  
  18. $fileName = strtolower($file['name'][$i]);
  19. if (!preg_match('/\.(jpg|jpeg|png|gif)$/', $fileName))
  20. {
  21. return ['error'=>'您只能上传通用的图片格式'];
  22. }
  23.  
  24. $destinationPath = $dir. date('Ymd');
  25. $fileExtendName = substr($fileName, strpos($fileName, '.'));
  26. $realPath = $root . $destinationPath;
  27. if (!file_exists($realPath))
  28. {
  29. make_dir($realPath);
  30. }
  31. $newFileName = uniqid() . mt_rand(1, 100000) . $fileExtendName;
  32. move_uploaded_file($file['tmp_name'][$i], $realPath.'/'.$newFileName);
  33. $filePath[]=$destinationPath . '/' . $newFileName; }
  34. }
  35. if($format=='string')
  36. return implode(',',$filePath);
  37. }
  38. else
  39. return ['error'=>'请选择文件再上传'];
  40. }

  

lumen 支持多文件上传的更多相关文章

  1. 强大的支持多文件上传的jQuery文件上传插件Uploadify

    支持多文件上传的jQuery文件上传插件Uploadify,目前此插件有两种版本即Flash版本和HTML5版本,对于HTML5版本会比较好的支持手机浏览器,避免苹果手机Safari浏览器不支持Fla ...

  2. skymvc文件上传支持多文件上传

    skymvc文件上传支持多文件上传 支持单文件.多文件上传 可以设定 文件大小.存储目录.文件类型 //上传的文件目录 $this->upload->uploaddir="att ...

  3. 基于bootstrap的上传插件fileinput实现ajax异步上传功能(支持多文件上传预览拖拽)

    首先需要导入一些js和css文件 ? 1 2 3 4 5 6 <link href="__PUBLIC__/CSS/bootstrap.css" rel="exte ...

  4. Jquery图片上传组件,支持多文件上传

    Jquery图片上传组件,支持多文件上传http://www.jq22.com/jquery-info230jQuery File Upload 是一个Jquery图片上传组件,支持多文件上传.取消. ...

  5. php 图片上传 并返回上传文件位置 支持多文件上传

    <?php /** * Created by PhpStorm. * User: DY040 * Date: 2018/4/26 * Time: 13:23 */ echo '<pre&g ...

  6. ajaxfileupload多文件上传 - 修复只支持单个文件上传的bug

    搜索: jquery ajaxFileUpload AjaxFileUpload同时上传多个文件 原生的AjaxFileUpload插件是不支持多文件上传的,通过修改AjaxFileUpload少量代 ...

  7. jquery.form.js官方插件介绍Form插件,支持Ajax,支持Ajax文件上传

    jquery.form.js官方插件介绍Form插件,支持Ajax,支持Ajax文件上传 http://www.malsup.com/jquery/form/#getting-started [JQu ...

  8. 聊一聊jquery文件上传(支持多文件上传)

    谈到文件上传,现在一般都用现成的组件可以使用.PC端的可以使用uploadify.针对微网站H5也有uploadifive.但是这组件并不能满足各种场景的需求,例如:预览 切图 放大缩小,取消之类的. ...

  9. jQuery.uploadify-----文件上传带进度条,支持多文件上传的插件

    借鉴别人总结的uploadify:基于jquery的文件上传插件,支持ajax无刷新上传,多个文件同时上传,上传进行进度显示,控制文件上传大小,删除已上传文件. uploadify有两个版本,一个用f ...

随机推荐

  1. Java:配置环境(Mac)——Tomcat

    1.官网下载 2.把下载的文档解压,放到合适的路径下. 3.打开eclipse 4.在Apache文件夹下选择Tomcat的对应版本 5.选择刚才下载的文件 6.可以右键Start了

  2. 【English】十五、“a”和“one”的区别是什么?

    一."a"和"one"的区别是什么 参考:“a”和“one”的区别是什么-百度知道 a和one的区别是什么?-作业帮 1.尽管a和one这两个在意义上有些相似, ...

  3. 使用Log4Net进行错误日志记录

    http://blog.csdn.net/zdw_wym/article/details/48802821

  4. go学习笔记(一)

  5. Docker 容器安装及常用基础命令

    为什么用docker 作为一种新兴的虚拟化方式,Docker 跟传统的虚拟化方式相比具有众多的优势. Docker 在如下几个方面具有较大的优势: 更快速的交付和部署 Docker在整个开发周期都可以 ...

  6. VC++6.0

    for 循环的小括号中 不可以定义变量 我也是醉了

  7. springboot mybatis 整合

    新建项目在上一篇. 第二步:创建表和相应的实体类 实体类:user.java package com.qtt.im.entity; import java.io.Serializable; publi ...

  8. 技术的极限(6): 密码朋克精神(Cypherpunk Spirit)

    上一篇:技术的极限(5): 识别计算与技术背后的心智 下一篇:技术的极限(7): 处理复杂与分层 目录: ** 0x01 数据和App分离 ** 0x02 蒸汽朋克/赛博朋克/密码朋克 ** 0x03 ...

  9. web开发中各种宽高

    Gosper 曲线:https://www.cnblogs.com/tgzhu/p/8286616.html

  10. TOMCAT原理详解及请求过程(转载)

    转自https://www.cnblogs.com/hggen/p/6264475.html TOMCAT原理详解及请求过程 Tomcat: Tomcat是一个JSP/Servlet容器.其作为Ser ...