一、需求:

  利用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. 简单web服务工作流程梳理

       一.用户访问web基本流转过程梳理 二.web框架粗略概括

  2. 【洛谷P3329】 [ZJOI2011]最小割(最小割树)

    洛谷 题意: 给出一个无向图,之后有\(q,q\leq 30\)组询问,每组询问有一个\(x\),回答有多少点对\((a,b)\)其\(a-b\)最小割不超过\(x\). 思路: 这个题做法要最小割树 ...

  3. c# 第41节 异常处理

    本节内容: 1:捕获异常两种方式 2:处理异常的两种方式 3:实例处理异常 4:手动触发异常 5:预定义异常类有哪些 6:自定义异常 1:捕获异常 第一种 捕获:只能知道发生了异常 第二种捕获: 可以 ...

  4. RAID几种方式

    RAID(Redundant Array of Independent Disk 独立冗余磁盘阵列)技术是加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂贵磁盘,同时希望磁盘失 ...

  5. linux-zookeeper-kafka入门

    公告:版权所有,违者必究 1.zookeeper安装 前提:先安装jdk,zookeeper运行依赖于java环境. (1.)下载安装包 http://mirror.bit.edu.cn/apache ...

  6. (day49)Django框架简介

    目录 一.Web框架 (一)本质 (1)动静态网页 (2)wsgiref模块 (3)jinja2模块 (4)手动实现思路 (二)python主流框架 (1)Django (2)flask (3)tor ...

  7. 鲜贝7.3--python安装

    方法一:google 搜索 anaconda 进入官网下载64位最新版本 勾选加入环境变量 +默认3.7 打开cmd pip 发现已经完成安装 右键此电脑 属性 高级属性 环境变量 ’ 已经被加入 方 ...

  8. Zuul中聚合Swagger的坑

    每个服务都有自己的接口,通过Swagger来管理接口文档.在服务较多的时候我们希望有一个统一的入口来进行文档的查看,这个时候可以在zuul中进行文档的聚合显示. 下面来看下具体的整合步骤以及采坑记录. ...

  9. golang module 在 spacemcs 中的配置

    概述 golang 官方的包管理从 1.11 版本就开始支持了, 之前尝试了几次, 效果都不理想, 就一直用 dep 来管理 package. 最近 1.13 版本发布了, 使用 go module ...

  10. Nginx+Tomcat+Memcache 实现session共享

    Nginx + Tomcat + Memcache 实现session共享 1. Nginx 部署 1.上传源码包到服务器,解压安装 下载地址:http://nginx.org/en/download ...