SpringMVC multipart文件上传
一、介绍
spring内建的multipart支持网络程序文件上传。我们可以通过配置MultipartResolver来启动上传支持。它定义在org.springframework.web.multipart包中。spring是通过使用Commons FileUpload插件来完成MultipartResolver的。
默认情况下,spring不处理multipar的form信息,因为开发者默认会自己去处理这部分信息,当然我们可以随时打开这个支持。这样对于每一个请求,都会查看它是否包含multipart的信息,如果没有则按流程继续执行。如果发现有,就会交给已经被声明的MultipartResolver进行处理,然后我们就能像处理其他普通属性一样处理文件上传了。
二、使用MultipartResolver
下面的例子显示了如何使用CommonsMultipartResolver
- <bean id="multipartResolver"
- class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
- <!-- one of the properties available; the maximum file size in bytes -->
- <property name="maxUploadSize" value="100000"/>
- </bean>
当然,我们要把所需的jar包放到lib中, 就是commons-fileupload.jar.
三、处理一个文件上传的form
当MultipartResolver处理完成以后,请求被处理成和普通请求一样。下面是页面文件。
- <html>
- <head>
- <title>Upload a file please</title>
- </head>
- <body>
- <h1>Please upload a file</h1>
- <form method="post" action="/form" enctype="multipart/form-data">
- <input type="text" name="name"/>
- <input type="file" name="file"/>
- <input type="submit"/>
- </form>
- </body>
- </html>
下一步是创建一个controller来处理文件上传。controller也和其他的一样,除了在我们的方法参数中使用MultipartHttpServletRequest或者MultipartFile。
- @Controller
- public class FileUpoadController {
- @RequestMapping(value = "/form", method = RequestMethod.POST)
- public String handleFormUpload(@RequestParam("name") String name,
- @RequestParam("file") MultipartFile file) {
- if (!file.isEmpty()) {
- byte[] bytes = file.getBytes();
- // store the bytes somewhere
- return "redirect:uploadSuccess";
- } else {
- return "redirect:uploadFailure";
- }
- }
- }
最后,我们要声明我们的controller和multipar解析器
- <beans>
- <bean id="multipartResolver"
- class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>
- <!-- Declare explicitly, or use <context:annotation-config/> -->
- <bean id="fileUploadController" class="examples.FileUploadController"/>
- </beans>
--------------------------
如果你对java、swing、各种框架、javascript、css、linux、数据库编程等知识很感兴趣,或者正在从事这些工作,请加入我建的群:464696550
SpringMVC multipart文件上传的更多相关文章
- springmvc图片文件上传接口
springmvc图片文件上传 用MultipartFile文件方式传输 Controller package com.controller; import java.awt.image.Buffer ...
- SpringMVC学习--文件上传
简介 文件上传是web开发中常见的需求之一,springMVC将文件上传进行了集成,可以方便快捷的进行开发. springmvc中对多部件类型解析 在 页面form中提交enctype="m ...
- Spring +SpringMVC 实现文件上传功能。。。
要实现Spring +SpringMVC 实现文件上传功能. 第一步:下载 第二步: 新建一个web项目导入Spring 和SpringMVC的jar包(在MyEclipse里有自动生成spring ...
- SpringMVC之文件上传异常处理
一般情况下,对上传的文件会进行大小的限制.如果超过指定大小时会抛出异常,一般会对异常进行捕获并友好的显示出来.以下用SpringMVC之文件上传进行完善. 首先配置CommonsMultipartRe ...
- springmvc实现文件上传
springmvc实现文件上传 多数文件上传都是通过表单形式提交给后台服务器的,因此,要实现文件上传功能,就需要提供一个文件上传的表单,而该表单就要满足以下3个条件 (1)form表彰的method属 ...
- 【SpringMVC】文件上传Expected MultipartHttpServletRequest: is a MultipartResolver错误解决
本文转载自:https://blog.csdn.net/lzgs_4/article/details/50465617 使用SpringMVC实现文件上传时,后台使用了 MultipartFile类, ...
- 关于SpringMVC的文件上传
关于文件的上传,之前写过2篇文章,基于Struts2框架,下面给出文章链接: <关于Struts2的文件上传>:http://www.cnblogs.com/lichenwei/p/392 ...
- 一起学SpringMVC之文件上传
概述 在Web系统开发过程中,文件上传是普遍的功能,本文主要以一个简单的小例子,讲解SpringMVC中文件上传的使用方法,仅供学习分享使用,如有不足之处,还请指正. 文件上传依赖包 如下所示,文件上 ...
- SpringMVC+ajax文件上传实例教程
原文地址:https://blog.csdn.net/weixin_41092717/article/details/81080152 文件上传文件上传是项目开发中最常见的功能.为了能上传文件,必须将 ...
随机推荐
- SD内存卡禁止写入只读怎么办?另类SPI模式修复坏卡
这几天很郁闷,买的32G TF卡老出问题,三星的标,不知道是不是正品,标称C10,且不说是不是真的三星和真的C10,反正测试一下容量倒是真的,价格么也比较亲民,好像是69块? 哎,可惜呀,好景不长 ...
- solr4.7配置(ik-analyzer)
环境: windows server 2003 sp2 x86 tomcat8.0 solr-4.7.2 IK Analyzer 2012FF_hf1 ————————————华丽的分割线—————— ...
- 深入浅出Nodejs读书笔记
深入浅出Nodejs读书笔记 转:http://tw93.github.io/2015-03-01/shen-ru-qian-chu-nodejs-reading-mind-map.html cate ...
- ztree默认自动打开第一级
var treeObj = $.fn.zTree.getZTreeObj("tree"); var nodes = treeObj.getNodes(); if (nodes.le ...
- JQuery实现密码有短暂的显示过程和实现 input hint效果
目录: 一.实现目的 二.问题思考 三.解决办法 1.输入用户名 2.输入密码短暂显示 一.实现目的 这几天做项目的时候,客户要求在文本框输入密码的时候,要求密码有短暂的显示过程,如下图: 二.问题思 ...
- Mono Touch Table应用
, UIApplication.SharedApplication.StatusBarFrame.Height , UIScreen.MainScree ...
- 什么是BFC(Block Formatting Context)
原文:https://segmentfault.com/a/1190000012221820 https://www.w3.org/TR/CSS2/visuren.html#block-formatt ...
- linux bash关闭标准输出1(exec 1<&-)后重新打开
linux bash shell的再次学习. 文件描述符: stdin,stdout 和 stderr 的文件描述符分别是 0,1 和 2(一个文件描述符说白了就是文件系统为了跟踪这个打开的文件而分配 ...
- Linux Kernel 2:用户空间的初始化
上篇我们知道,kernel初始化后将启动init进程,那么这个进程将干些什么呢?除此之外,kernel还需要做些什么事情呢?(想想文件系统.根存储设备是在什么时候初始化的呢?) 先从文件系统初始化说起 ...
- 转: 使用MinGW + Eclipse CDT进行C++开发的配置方法
使用MinGW + Eclipse CDT进行C++开发的配置方法 1 2 3 4 5 6 分步阅读 Eclipse作为开源的IDE,可以用来高效开发Java.C++.C等程序.本文介绍如何在Wind ...