一、SSM+Form 多张图片和其他数据一起上传,

1、导包:

commons-fileupload-1.3.3.jar

commons-io-2.4.jar

2、springmvc.xml 文件配置

<!--文件上传,id必须设置为multipartResolver-->
   <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!--设置上传大小 单位:B-->
        <property name="maxUploadSize" value="10240000"></property>
   </bean>

3、后端设置

@RequestMapping(value = "/upload.do")

     public String updateItem(MultipartFile[] pictureFile,User user,HttpServletRequest request) throws IOException {
     //图片上传 //设置图片名称,名称不能重复,可以使用uuid 
    String picName = UUID.randomUUID().toString().replace("-",""); 
    System.out.println("传入图片的数量:"+pictureFile.length);
    System.out.println("传入其他的参数或者实体:"+user);
    //获取文件名 
   String oriName = pictureFile[0].getOriginalFilename(); 
   System.out.println("获取文件名 "+oriName);
    //获取图片后缀 
   String extName = oriName.substring(oriName.lastIndexOf(".")); 
   System.out.println("获取图片后缀"+extName);

    String path = request.getSession().getServletContext().getRealPath("image");
    System.out.println("图片路径"+path);
    File dir = new File(path,picName+extName); 
   if(!dir.exists()){
       dir.mkdirs();
   }
   //开始上传 
  pictureFile[0].transferTo(dir); 
  return "forward:/index.html"; 
}

4、前端页面配置

<form enctype="multipart/form-data" method="post" action="upload.action">
       文件:<input type="file" name="pictureFile" multiple/>
       姓名:<input type="text" name="username"/>
       密码:<input type="text" name="password">
                 <input type="submit" value="上传"/>
     </form>

 

二、SSM+AJAX 多张图片和其他数据一起上传,总共四个步骤:

1、导包:

同上。

2、springmvc.xml 文件配置

同上。

3、controller 后台设置

@RequestMapping(value = "/upload.do")

     public String updateItem(@RequestParam("pictureFile") MultipartFile[] pictureFile,User user,HttpServletRequest request) throws IOException {
     //图片上传 //设置图片名称,名称不能重复,可以使用uuid
    String picName = UUID.randomUUID().toString().replace("-","");
    System.out.println("传入图片的数量:"+pictureFile.length);
    System.out.println("传入其他的参数或者实体:"+user);
    //获取文件名
   String oriName = pictureFile[0].getOriginalFilename();
   System.out.println("获取文件名 "+oriName);
    //获取图片后缀
   String extName = oriName.substring(oriName.lastIndexOf("."));
   System.out.println("获取图片后缀"+extName);

    String path = request.getSession().getServletContext().getRealPath("image");
    System.out.println("图片路径"+path);
    File dir = new File(path,picName+extName);
   if(!dir.exists()){
       dir.mkdirs();
   }
   //开始上传
  pictureFile[0].transferTo(dir);
  return "forward:/index.html";
}

4、前端页面配置:

文件:<input type="file" name="pictureFile" multiple/>
   姓名:<input type="text" name="username"/>
   密码:<input type="text" name="password">
   <input type="submit" value="上传" onclick="shangchuan()"/>

js部分
  <script type="text/javascript">
    function shangchuan() {
       var username = document.getElementsByName("username")[0].value;
       var password = document.getElementsByName("password")[0].value;
       var filesl = document.getElementsByName("pictureFile")[0].files;
       var files = document.getElementsByName("pictureFile")[0];

var formData = new FormData();
       for(var i=0;i < filesl.length;i++){
             formData.append("pictureFile",files.files[i]);
       }
       formData.append("username", username);
       formData.append("password", password);
       console.log(formData)
      $.ajax({
             url:"upload.action",
             type:"post",
             data:formData,
             dataType:"json",
             mimeType: "multipart/form-data",
             cache:false,
             processData:false,
            contentType:false,
            async:false,
            success:function(data){
                   console.log(data)
            }
      })

至此两种方式配置结束,form表单形式更容易实现,也比较常用,推荐使用这种,希望能帮助到你!

SSM框架实现多张图片和其他数据一起上传的更多相关文章

  1. Jquery DataTable AJAX跨域请求的解决方法及SSM框架下服务器端返回JSON格式数据的解决方法

    如题,用HBuilder开发APP,涉及到用AJAX跨域请求后台数据,刚接触,费了不少时间.幸得高手指点,得以解决. APP需要用TABLE来显示数据,因此采用了JQ 的DataTable.  在实现 ...

  2. 基于springboot的SSM框架实现返回easyui-tree所需要数据

    1.easyui-tree easui-tree目所需要的数据结构类型如下: [ { "children": [ { "children": [], " ...

  3. 使用.NET框架、Web service实现Android的文件上传(二)

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYUAAAKpCAIAAADcx6fPAAAgAElEQVR4nOydd1hT5+LHg1attbfr1t ...

  4. 基于python的Elasticsearch索引的建立和数据的上传

    这是我的第一篇博客,还请大家多多指点 Thanks ♪(・ω・)ノ         今天我想讲一讲关于Elasticsearch的索引建立,当然提前是你已经安装部署好Elasticsearch. ok ...

  5. JAVA 后台SSM框架接收安卓端的json数据

    最近项目上与安卓端做JSON数据交互,使用的SSM框架,刚开始的时候感觉很简单,想着不就是把安卓端的JSON数据封装为Bean类对象吗? 于是就这样写了 可是这样一直报400,百度原因是因为请求url ...

  6. 搭建ssm框架,可实现登录和数据展示以及增删改查

    需求: 后台使用ssm(spring-springMVC-mybatis)进行整合 前台使用bootstrap框架 前后台交互使用Ajax进行发送 表结构: 登录页面后显示所有用户信息,可对每条进行增 ...

  7. SpringMVC框架笔记02_参数绑定返回值文件上传异常处理器JSON数据交互_拦截器

    目录 第1章 高级参数的绑定 1.1 参数的分类 1.2 数组类型的参数的绑定 1.3 集合类型的参数的绑定 第2章 @RequestMapping的用法 2.1 URL路径映射 2.2 请求方法限定 ...

  8. [iOS AFNetworking框架实现HTTP请求、多文件图片上传下载]

    简单的JSON的HTTP传输就不说了,看一个简单的DEMO吧. 主要明白parameters是所填参数,类型是字典型.我把这部分代码封装起来了,以便多次调用.也许写在一起更清楚点. #pragma m ...

  9. Android 利用an框架快速实现网络请求(含下载上传文件)

    作者:Bgwan链接:https://zhuanlan.zhihu.com/p/22573081来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. an框架的网络框架是完全 ...

随机推荐

  1. 口述完SpringMVC执行流程,面试官就让同事回家等消息了

    Srping MVC 执行流程真的是老生常谈的话题了,最近同事小刚出去面试,前面面试官相继问了几个 Spring 相关的问题,但当面试官问他,你知道 Srping MVC 的执行流程吗?小刚娴熟的巴拉 ...

  2. 大白话详解大数据HBase核心知识点,老刘真的很用心(3)

    老刘目前为明年校招而努力,写文章主要是想用大白话把自己复习的大数据知识点详细解释出来,拒绝资料上的生搬硬套,做到有自己的理解! 01 HBase知识点(3) 第13点:HBase表的热点问题 什么是热 ...

  3. 国产开源数据库:腾讯云TBase在分布式HTAP领域的探索与实践

    ​导语 | TBase 是腾讯TEG数据平台团队在开源 PostgreSQL 的基础上研发的企业级分布式 HTAP 数据库系统,可在同一数据库集群中同时为客户提供强一致高并发的分布式在线事务能力以及高 ...

  4. 网鼎杯2020 AreUSerialz

    0x00 前言 ...有一说一,赵总的BUUCTF上的这道题目并没有复现到精髓.其实感觉出题人的题目本身没有那么简单的,只不过非预期实在是太简单惹. 涉及知识点: 1.php中protected变量反 ...

  5. Codeforces Round #682 Div2 简要题解

    Contest link A.Specific Tastes of Andre Problem link 题意 构造一个长度为 \(n\) 的序列,使得每个非空子序列的和都被其长度整除. 思路 直接每 ...

  6. AcWing 1194. 岛和桥

    \(f[s][i][j]\) 表示一条有向路径(不经过重复点),当前路径点集合为 \(s\),最后两个点是 \(j\) → \(i\) 的最大价值 \(g[s][i][j]\) 类似,不过是方案数. ...

  7. Java并发编程的艺术(五)——线程和线程的状态

    线程 什么是线程 操作系统调度的最小单元就是线程,也叫轻量级进程. 为什么要使用多线程 多线程程序能够更有效率地利用多处理器核心. 用户响应时间更快. 方便程序员将程序模型映射到Java提供的多线程编 ...

  8. CSS知识点记录

    1.浏览器style中显示的样式 这里面的样式,是行内样式或者是使用js添加的样式

  9. 工作笔记——CPLD与MCU通过SPI通信

    一.需求描述 MCU需要接收来自CPLD的升级固件数据 CPLD对MCU只进行发送数据,不接收MCU的数据 CPLD无法告知数据传输的开始和结束,需要MCU自行判断(CPLD只是数据透传,不做数据判断 ...

  10. ThreadX——IPC应用之信号量

    一.应用简介 在RTOS的应用开发中,信号量也是经常使用到的一种用于多任务之间信息同步.资源互斥访问的一种手段,常用于协调多个任务访问同一资源的场景.信号量又分为计数信号量和互斥信号量.计数信号量可以 ...