Spring mvc文件上传实现
Spring mvc文件上传实现
jsp页面客户端表单编写
三个要素:
1.表单项type=“file”
2.表单的提交方式:post
3.表单的enctype属性是多部分表单形式:enctype=“multipart/form-data”
会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时,会有Content-Type来表名文件类型;content-disposition,用来说明字段的一些信息;由于有boundary隔离,所以multipart/form-data既可以上传文件,也可以上传键值对,它采用了键值对的方式,所以可以上传多个文件。
3.1.当form表单修改为多部分表单时,request.getParameter()将失效。
3.2.enctype=“application/x-www-form-urlencoded”时,form表单的正文内容格式是:key=value&key=value&key=value
3.3.当form表单的enctype取值为Mutilpart/form-data时,请求正文内容就变成多部分形式:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/quick16" method="post" enctype="multipart/form-data">
    名称:<input type="text" name="name"><br>
    文件:<input type="file" name="uploadFile">
    <input type="submit" value="点击提交">
</form>
</body>
</html>
需要导入的jar坐标
<dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.1</version>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.6</version>
        </dependency>
配置文件上传解析器
 <bean id="commonsMultipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!--上传文件的编码类型-->
        <property name="defaultEncoding" value="utf-8"></property>
        <!--上传单个文件的大小-->
        <property name="maxUploadSizePerFile" value="50000000"></property>
        <!--上传文件的总大小-->
        <property name="maxUploadSize" value="54288600"></property>
    </bean>
编写文件上传代码
  @RequestMapping(value = "/quick17")
    /* 告诉SpringMvc框架,方法返回的字符串不是跳转是直接在http响应体中返回*/
    @ResponseBody
    public void save17(String username, MultipartFile uploadFile) throws IOException {
       /*获取原始文件名*/
        String originalFilename = uploadFile.getOriginalFilename();
        /*保存到服务器上这里是本地*/
        uploadFile.transferTo(new File("F:\\upload\\"+originalFilename));
    }
上传多个文件
jsp表单代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/quick18" method="post"
      enctype="multipart/form-data">
    名称:<input type="text" name="name"><br>
    文件1:<input type="file" name="uploadFiles">
    文件2: <input type="file" name="uploadFiles">
    <input type="submit" value="点击提交">
</form>
</body>
</html>
服务器端代码
@RequestMapping(value = "/quick18")
    /* 告诉SpringMvc框架,方法返回的字符串不是跳转是直接在http响应体中返回*/
    @ResponseBody
    public void save18(String username, MultipartFile[] uploadFiles) throws IOException {
        for (MultipartFile uploadFile : uploadFiles) {
            /*获取原始文件名*/
            String originalFilename = uploadFile.getOriginalFilename();
            /*保存到服务器上这里是本地*/
            uploadFile.transferTo(new File("F:\\upload\\"+originalFilename));
        }
    }

成功保存到本地

以上就是SpringMVC系列的第三章,主要侧重SpringMVC上传文件的操作,我后续会持续更新Springmvc系列课程,本博客主要侧重于数据结构于算法和java开发,觉得我的文章有帮助的小伙伴可以关注我,有疑问可评论私信,相逢即是缘,大家高处见

Spring mvc文件上传实现的更多相关文章
- Spring MVC 笔记 —— Spring MVC 文件上传
		文件上传 配置MultipartResolver <bean id="multipartResolver" class="org.springframework.w ... 
- Spring MVC文件上传教程 commons-io/commons-uploadfile
		Spring MVC文件上传教程 commons-io/commons-uploadfile 用到的依赖jar包: commons-fileupload 1.3.1 commons-io 2.4 基于 ... 
- 【Java Web开发学习】Spring MVC文件上传
		[Java Web开发学习]Spring MVC文件上传 转载:https://www.cnblogs.com/yangchongxing/p/9290489.html 文件上传有两种实现方式,都比较 ... 
- Spring mvc 文件上传到文件夹(转载+心得)
		spring mvc(注解)上传文件的简单例子,这有几个需要注意的地方1.form的enctype=”multipart/form-data” 这个是上传文件必须的2.applicationConte ... 
- spring mvc 文件上传 ajax 异步上传
		异常代码: 1.the request doesn't contain a multipart/form-data or multipart/mixed stream, content type he ... 
- spring mvc文件上传(单个文件上传|多个文件上传)
		单个文件上传spring mvc 实现文件上传需要引入两个必须的jar包 1.所需jar包: commons-fileupload-1.3.1.jar ... 
- Strut2 和Spring MVC 文件上传对比
		在Java领域中,有两个常用的文件上传项目:一个是Apache组织Jakarta的Common-FileUpload组件 (http://commons.apache.org/proper/commo ... 
- Spring MVC 文件上传 & 文件下载
		索引: 开源Spring解决方案--lm.solution 参看代码 GitHub: pom.xml WebConfig.java index.jsp upload.jsp FileUploadCon ... 
- 【Spring】Spring MVC文件上传--整合bootstrap-fileinput和jQuery-File-Upload
		前言 这里分享两个使用Spring MVC进行文件上传的简单示例, 分别整合bootstrap-fileinput 和 Jquery File Upload , 代码十分简单, 都是入门的示例,因此这 ... 
随机推荐
- jsop之---实现过程
			JSONP(JSONP - JSON with Padding是JSON的一种“使用模式”),利用script标签的src属性(浏览器允许script标签跨域) 跨域访问,非同源访问 <!DOC ... 
- python 3 字典
			字典,是可变的无序集合,同时是一种以键值对为基本元素的可以存储各种数据类型的集合,用大括号({})表示字典的开始和结束,元素之间用(,)分隔. 键值对,由键(Key)和值(Value)组成,中间用冒号 ... 
- python 3 break 循环控制
			人类的本质是一个复读机 
- 利用 QEMU USER 模式运行 mips 程序
			摘要 关键字: qemu mips 前述 QEMU是一个处理器模拟软件,可以用来在PC中模拟ARM.MIPS等多种架构的软硬件运行环境.QEMU主要有两种模拟模式: User Mode System模 ... 
- 如何使用 TDengine 2.0 最新开源的集群功能?
			导读:8月3日,TDengine 发布了 v2.0 版本,这次更新最大的亮点是,我们将分布式集群功能开源.开源后,引起了很大反响,又连续几天在 GitHub 趋势榜排名第一.不少关注TDengine的 ... 
- apache-apollo启动报错
			启动Apollo后,进入网页版管理中心后报错:500: Server Error https://127.0.0.1:61681/console/index.html 网页抓包 报错:{"c ... 
- JDK安装与基础环境变量配置 入门详解 - 精简归纳
			JDK安装与基础环境变量配置 JERRY_Z. ~ 2020 / 9 / 17 转载请注明出处!️ 目录 JDK安装与基础环境变量配置 一.下载 二.安装 (1).双击.exe文件 (2).全选安装工 ... 
- Mac新手必看教程——轻松玩转Mac OS
			背景: 大部分用户接触的第一个操作系统大多是windows,本人记得曾经小学的微机课也是以win98为基础学习了一众office软件.随着工作的多样化,单一的windows系统已经无法满足部分需求,而 ... 
- 使用VSCode和CMake构建跨平台的C/C++开发环境
			日前在学习制作LearnOpenGL教程的实战项目Breakout游戏时,希望能将这个小游戏开发成跨平台的,支持在多个平台运行.工欲善其事必先利其器,首先需要做的自然是搭建一个舒服的跨平台C/C++开 ... 
- Leetcode PHP题解--D125 107. Binary Tree Level Order Traversal II
			val = $value; } * } */ class Solution { private $vals = []; /** * @param TreeNode $root * @return In ... 
