一、需求:

  利用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. SourceInsight教程

    概述: Source Insight是一个面向项目开发的程序编辑器和代码浏览器,它拥有内置的对C/C++, C#和Java等程序的分析.Source Insight能分析你的源代码并在你工作的同时动态 ...

  2. [b0030] python 归纳 (十五)_多进程使用Pool

    1 usePool.py #coding: utf-8 """ 学习进程池使用 multiprocessing.Pool 总结: 1. Pool 池用于处理 多进程,并不 ...

  3. Mysql—数据备份与恢复

    数据备份 # 备份单个数据库 [root@localhost ~]# mysqldump -h主机名 -u用户名 -p密码 数据库名字 > 备份的数据库名字.sql [root@localhos ...

  4. docker网络之(三)

    docker4种网络 基于docker run创建容器时,可以使用--net选项指定容器的网络模式:Docker默认有以下4种网络模式: host模式,使用--net=host指定 container ...

  5. [Go] 利用channel形成管道沟通循环内外

    这个要解决的问题是,比如如果有一个大循环,取自一个大的文件,要进行逻辑处理,那么这个逻辑的代码要放在循环每一行的循环体里面,这样有可能会出现一个for循环的逻辑嵌套,一层又一层,类似俄罗斯套娃.如果放 ...

  6. golang数据结构和算法之QueueLinkedList链表队列

    队列和堆栈不一样的地方在于进出顺序: 堆栈是后进先出, 队列是先进先出. QueueLinkedList.go package QueueLinkedList type Node struct { d ...

  7. Pwn-level2

    题目地址 https://dn.jarvisoj.com/challengefiles/level2.54931449c557d0551c4fc2a10f4778a1 先看一下文件的属性   32位 ...

  8. 使用Fiddler模拟弱网测试教程

    一.下载抓包工具Fiddler 官网下载链接:https://www.telerik.com/fiddler 二.设置Fiddler Tools>>Connections  然后修改监听端 ...

  9. idea多模块项目打开RunDashBoard(十)

    在使用spring cloud微服务时,多个服务可以以多个独立子模块(module)的形式放在一个project里面,当服务过多时,一个个启动往往不是很方便,idea有一个贴心的RunDashBoar ...

  10. Rest微服务案例(二)

    1. 创建父工程 Maven Project 新建父工程microservicecloud,packaging是pom模式,pom.xml内容如下: <!-- SpringBoot父依赖 --& ...