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文件上传实现的更多相关文章

  1. Spring MVC 笔记 —— Spring MVC 文件上传

    文件上传 配置MultipartResolver <bean id="multipartResolver" class="org.springframework.w ...

  2. Spring MVC文件上传教程 commons-io/commons-uploadfile

    Spring MVC文件上传教程 commons-io/commons-uploadfile 用到的依赖jar包: commons-fileupload 1.3.1 commons-io 2.4 基于 ...

  3. 【Java Web开发学习】Spring MVC文件上传

    [Java Web开发学习]Spring MVC文件上传 转载:https://www.cnblogs.com/yangchongxing/p/9290489.html 文件上传有两种实现方式,都比较 ...

  4. Spring mvc 文件上传到文件夹(转载+心得)

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

  5. spring mvc 文件上传 ajax 异步上传

    异常代码: 1.the request doesn't contain a multipart/form-data or multipart/mixed stream, content type he ...

  6. spring mvc文件上传(单个文件上传|多个文件上传)

    单个文件上传spring mvc 实现文件上传需要引入两个必须的jar包    1.所需jar包:                commons-fileupload-1.3.1.jar       ...

  7. Strut2 和Spring MVC 文件上传对比

    在Java领域中,有两个常用的文件上传项目:一个是Apache组织Jakarta的Common-FileUpload组件 (http://commons.apache.org/proper/commo ...

  8. Spring MVC 文件上传 & 文件下载

    索引: 开源Spring解决方案--lm.solution 参看代码 GitHub: pom.xml WebConfig.java index.jsp upload.jsp FileUploadCon ...

  9. 【Spring】Spring MVC文件上传--整合bootstrap-fileinput和jQuery-File-Upload

    前言 这里分享两个使用Spring MVC进行文件上传的简单示例, 分别整合bootstrap-fileinput 和 Jquery File Upload , 代码十分简单, 都是入门的示例,因此这 ...

随机推荐

  1. numpy函数笔记(持续更新)

    numpy函数笔记 np.isin用法 np.isin(a,b) 用于判定a中的元素在b中是否出现过,如果出现过返回True,否则返回False,最终结果为一个形状和a一模一样的数组.(注意:这里的a ...

  2. 发现新世界:神级浏览器插件TamperMonkey(暴力猴)

    由于谷歌浏览器各种受限 于是我就先使用火狐浏览器尝试此插件 步骤非常简单. 1.在火狐浏览器内打开如下网址:https://addons.mozilla.org/zh-CN/firefox/addon ...

  3. 重磅来袭 Vue 3.0 One Piece 正式发布

    代号为One Piece 的Vue3.0 在9月19日凌晨正式发布!! 此次vue3.0 为用户提供了全新的 composition-api 以及更小的包大小,和更好的 TypeScript 支持. ...

  4. 论文翻译:2020_Acoustic Echo Cancellation Challenge Datasets And Testingframework

    论文地址:ICASSP 2021声学回声消除挑战:数据集和测试框架 代码地址:https://github.com/microsoft/DNS-Challenge 主页:https://aec-cha ...

  5. 1.KafKa-介绍

  6. NuxtJS快速入门

    服务器端渲染(SSR) 知识储备 ES6 Nodejs Vue React Angular 什么是服务器端渲染 前端渲染:html页面作为静态文件存在,前端请求时后端不对该文件做任何内容上的修改,直接 ...

  7. spring中配事务的工具配置

    <!--配置事务--><bean id="transactionManager" class="org.springframework.jdbc.dat ...

  8. 将SublimeText3打造成简易Java IDE

    简介与优点 使用该教程,你能使你的Sublime Text3可以作为一个精简版的JAVA IDE工具 既可以独立在cmd控制台运行也可以在Sublime自带的控制台运行 运行后不会有乱码 报错后可以在 ...

  9. 在Linux系统下搭建和配置一个minio文件服务器(一)

    1.minio文件服务器的介绍 Minio 是一个基于Go语言的对象存储服务.它实现了大部分亚马逊S3云存储服务接口,可以看做是是S3的开源版本,非常适合于存储大容量非结构化的数据,例如图片.视频.日 ...

  10. Spark 模型选择和调参

    Spark - ML Tuning 官方文档:https://spark.apache.org/docs/2.2.0/ml-tuning.html 这一章节主要讲述如何通过使用MLlib的工具来调试模 ...