一、需求:

  利用SpringMVC实现上传文件的功能

  二、思路:

  1.我们可以在SpringMVC中,通过配置一个MultipartResolver来上传文件。

  2.通过MultipartFile file来接收文件,通过MultipartFile[] files接收多个文件上传。

  三、参考

  1.SpringMVC学习:https://how2j.cn/k/springmvc/springmvc-springmvc/615.html?p=36286

  四、步骤

  1.添加pom文件

  commons-fileupload

  commons-fileupload

  1.3.1

  commons-io

  commons-io

  2.3

  2.JSP页面

  上传页面,需要在src/main/resources/views下面新建一个upload.jsp文件

  3.跳转页面

  添加能跳转到upload页面的ViewController。需要在MyMvcConfig.java下面添加。

  // 添加转向upload页面的ViewController

  public void addViewControllers(ViewControllerRegistry registry) {

  registry.addViewController("/index").setViewName("/index");

  registry.addViewController("/toUpdate").setViewName("/upload");

  }

  4.MultipartResolver配置

  同样,在MyMvcConfig.java下面添加。

  // MultipartResolver配置

  @Bean

  public MultipartResolver multipartResolver() {

  CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();

  multipartResolver.setMaxUploadSize(1000000);

  return multipartResolver;

  }

  5.控制器(控制层)

  package com.eleven.controller;

  import java.io.File;

  import java.io.IOException;

  import org.apache.commons.io.FileUtils;

  import org.springframework.stereotype.Controller;

  import org.springframework.web.bind.annotation.RequestMapping;

  import org.springframework.web.bind.annotation.RequestMethod;

  import org.springframework.web.bind.annotation.ResponseBody;

  import org.springframework.web.multipart.MultipartFile;

  @Controller // 在@controller注解中,返回的是字符串,或者是字符串匹配的模板名称,即直接渲染视图,与html页面配合使用的

  public class UploadController {

  // @RequestMapping:是用来处理地址映射的注解

  // value:指定请求的实际地址

  // method:指定请求的方法类型,有get、post、put、delete

  @RequestMapping(value = "/upload", method = RequestMethod.POST)

  // 使用MultipartFile file接收上传的文件

  // @ResponseBody:将java对象转为json格式的数据。

  public @ResponseBody String upload(MultipartFile file) {

  try {

  // 使用FileUtils.writeByteArrayToFile快速写文件到磁盘

  FileUtils.writeByteArrayToFile(new File("D:upload/" + file.getOriginalFilename()), file.getBytes());

  return "ok";

  } catch (IOException e) {

  // TODO Auto-generated catch block

  e.printStackTrace();

  return "wrong";

  }

  }

  }

  6.运行

  访问路径: http://localhost:8080/springmvc/upload 即可。

SpringMVC 之 上传文件的更多相关文章

  1. 【SpringMVC】使用SpringMVC进行上传文件!

    写在前面: 之前在上传文件的时候,使用的是commons-file-upload这个插件,非常方便,能控制每个文件的大小,总共大小,缓存,以及支持多个文件的同时上传,但是写一次上传文件的后台代码量太大 ...

  2. 基于SpringMVC的上传文件实现

    基于SpringMVC的上传文件实现 1.项目源码 源码地址:upload 2.关键代码 @RequestMapping("/upload2") public void datal ...

  3. SpringMVC 学习-上传文件分解器 CommonsMultipartResolver 类

    Spring 组件 CommonsMultipartResolver 类的主要作用是配置文件上传的一些属性,也可以控制上传文件的大小. 在 springmvc-servlet.xml 配置文件中: & ...

  4. springmvc+ajaxFileUpload上传文件(前后台彻底分离的情况下)

    首先是导入jar包: web.xml: <servlet> <servlet-name>mvc-dispatcher</servlet-name> <serv ...

  5. SpringMVC在上传文件的时候提示The current request is not a multipart request错误

    @RequestMapping("/insertOrder") @ResponseBody public  Object insertOrder(String userId,Htt ...

  6. SpringMvc(注解)上传文件的简单例子

    spring mvc(注解)上传文件的简单例子,这有几个需要注意的地方1.form的enctype=”multipart/form-data” 这个是上传文件必须的2.applicationConte ...

  7. springmvc.xml 上传文件的配置

    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.Comm ...

  8. Springmvc异步上传文件

    <script src="js/jquery.js" type="text/javascript"></script><scrip ...

  9. SpringMVC,SpringBoot上传文件简洁代码

    @RequestMapping("/updateAvatar.html") public String updateHeadUrl(MultipartFile avatar, Mo ...

随机推荐

  1. Python的4个内置数据结构

    Python提供了4个内置数据结构(内置指可以直接使用,无需先导入),可以保存任何对象集合,分别是列表.元组.字典和集合. 一.列表有序的可变对象集合. 1.列表的创建例子 list1 = []lis ...

  2. 7-SQL-join连接

    (1) 内连接 关键字:inner join on select * from a_table inner join b_table on a_table.a_id = b_table.b_id; / ...

  3. Ingo Molnar 的实时补丁

    一.简介 Ingo Molnar 的实时补丁是完全开源的,它采用的实时实现技术完全类似于Timesys Linux,而且中断线程化的代码是基于TimeSys Linux的中断线程化代码的.这些实时实现 ...

  4. c# WF 第3节 窗体的属性

    本节内容: 1:如何找到窗口属性 2:窗口属性 1:如何找到窗口属性 2:窗口属性

  5. sql 代码优化

    1. where 执行顺序:右→左,筛选多的放右边:计算难度小的放右边,sql老版本(只在基于规则的优化器中有效,新版本基于代价不存在这个问题): 2. 少用子查询: 3. union快,表结构得一致 ...

  6. Monkey小白入门篇

    一.monkey简介 中文名:猴子 职业:压力测试小工具 用途:对待测Android应用程序进行压力测试,测试app是否会crash Android官方描述: The Monkey is a prog ...

  7. (day53)五、模型层(ORM)、settings文件配置

    目录 一.settings配置 (一)测试文件配置 (二)查看对应sql语句 二.模型表数据的增删改查 (一)创建数据 (1)create方法 (2)利用对象的绑定方法 (二)修改数据 (1)利用qu ...

  8. python中实现单例模式

    单例模式的目的是一个类有且只有一个实例对象存在,比如在复用类的过程中,可能重复创建多个实例,导致严重浪费内存,此时就适合使用单例模式. 前段时间需要用到单例模式,就称着机会在网上找了找,有包含了__n ...

  9. -bash:vi:command not find 问题解决

    Linux命令行输入命令执行后报“bash:vi:command not found”. 这是由于系统PATH设置问题,PATH没有设置对,系统就无法找到精确命令了. 1.在命令行中输入:export ...

  10. lanyu 激活idea

    编辑 C:\Windows\System32\drivers\etc\hosts 文件,最后面加入下面两行 0.0.0.0 account.jetbrains.com 0.0.0.0 www.jetb ...