概述

在Web系统开发过程中,文件上传是普遍的功能,本文主要以一个简单的小例子,讲解SpringMVC中文件上传的使用方法,仅供学习分享使用,如有不足之处,还请指正。

文件上传依赖包

如下所示,文件上传依赖的jar包主要有两个:

commons-fileupload-1.4.jar
commons-io-2.6.jar

SpringMVC支持文件上传操作步骤

1. 配置支持文件上传的Bean

如下所示:主要配置默认的编码方式,和上传文件的限制大小

 <!-- 文件上传支持 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8"></property>
<!-- 设置最大上传内容,单位是byte -->
<property name="maxUploadSize" value="1024000"></property>
</bean>

2. 在处理方法中,以MultipartFile 进行接收

如下所示:MultipartFile表示一个存储在内存中或者磁盘临时文件类型的文件内容。可以获取对应的输入流(InputStream),然后获取输入流中的字节数组内容。

     /**
* 显示upload页面,GET访问
* @return
*/
@RequestMapping(value="upload",method=RequestMethod.GET)
public ModelAndView upload(){
System.out.println("upload被调用了");
ModelAndView mav=new ModelAndView("upload");
return mav;
} /**
* 用于上传文件
* @return
* @throws IOException
*/
@RequestMapping(value="upload",method=RequestMethod.POST)
public ModelAndView upload(String desc,@RequestParam("file") MultipartFile file) throws IOException{
System.out.println("upload被调用了2");
String fileName=file.getOriginalFilename();
System.out.println("上传的源文件名:"+fileName);
System.out.println("文件描述:"+desc);
InputStream input= file.getInputStream();
OutputStream output=new FileOutputStream("D:\\upload\\"+fileName);
byte[] bs=new byte[1024];
int len=-1;
while((len=input.read(bs))!=-1){
output.write(bs,0,len);
}
output.close();
input.close();
ModelAndView mav=new ModelAndView("success");
return mav;
}

3. 前端(Jsp)页面中

如下所示:method="post" enctype="multipart/form-data"是关键

 <form action="upload" method="post" enctype="multipart/form-data">
文件:<input type="file" name="file"> <br />
描述:<input type="text" name="desc" /> <br />
<input type="submit" value="上传">
</form>

4. 运行进行测试

如下所示,输出日志如下:

upload被调用了
upload被调用了2
上传的源文件名:readme.txt
文件描述:1235
upload被调用了

备注

我们,已不再年轻,父母已老去,孩子已长大,吃不完的苦,扛不完的责任。活要自己拼命干,钱要自己辛苦赚。
我们,已不再年轻,该吃就吃,该睡就睡,该笑就笑,该休息就休息。

一起学SpringMVC之文件上传的更多相关文章

  1. springmvc图片文件上传接口

    springmvc图片文件上传 用MultipartFile文件方式传输 Controller package com.controller; import java.awt.image.Buffer ...

  2. SpringMVC学习--文件上传

    简介 文件上传是web开发中常见的需求之一,springMVC将文件上传进行了集成,可以方便快捷的进行开发. springmvc中对多部件类型解析 在 页面form中提交enctype="m ...

  3. Spring +SpringMVC 实现文件上传功能。。。

    要实现Spring +SpringMVC  实现文件上传功能. 第一步:下载 第二步: 新建一个web项目导入Spring 和SpringMVC的jar包(在MyEclipse里有自动生成spring ...

  4. SpringMVC之文件上传异常处理

    一般情况下,对上传的文件会进行大小的限制.如果超过指定大小时会抛出异常,一般会对异常进行捕获并友好的显示出来.以下用SpringMVC之文件上传进行完善. 首先配置CommonsMultipartRe ...

  5. springmvc实现文件上传

    springmvc实现文件上传 多数文件上传都是通过表单形式提交给后台服务器的,因此,要实现文件上传功能,就需要提供一个文件上传的表单,而该表单就要满足以下3个条件 (1)form表彰的method属 ...

  6. 【SpringMVC】文件上传Expected MultipartHttpServletRequest: is a MultipartResolver错误解决

    本文转载自:https://blog.csdn.net/lzgs_4/article/details/50465617 使用SpringMVC实现文件上传时,后台使用了 MultipartFile类, ...

  7. 关于SpringMVC的文件上传

    关于文件的上传,之前写过2篇文章,基于Struts2框架,下面给出文章链接: <关于Struts2的文件上传>:http://www.cnblogs.com/lichenwei/p/392 ...

  8. SpringMVC+ajax文件上传实例教程

    原文地址:https://blog.csdn.net/weixin_41092717/article/details/81080152 文件上传文件上传是项目开发中最常见的功能.为了能上传文件,必须将 ...

  9. 6.学习springmvc的文件上传

    一.文件上传前提与原理分析 1.文件上传必要前提: 2.文件上传原理分析: 3.需要引入的jar包: 二.传统方式文件上传程序 1.pom.xml <dependency> <gro ...

随机推荐

  1. 使用Feign访问接口

     添加主要依赖 使用Feign访问接口的配置,如果服务不在Eureka上,可以不加Eureka的依赖,用在FeignClient上指定url的方式访问 dependencies { compile(' ...

  2. TensorFlow学习笔记——LeNet-5(训练自己的数据集)

    在之前的TensorFlow学习笔记——图像识别与卷积神经网络(链接:请点击我)中了解了一下经典的卷积神经网络模型LeNet模型.那其实之前学习了别人的代码实现了LeNet网络对MNIST数据集的训练 ...

  3. 洛谷上的C语言三连击。

    注意看题目,没有0,一直错. #include<stdio.h> int panduan1(int num1,int num2, int num3); int main(){ int i, ...

  4. 封装扩展Kendo UI Grid

    封装后的代码如下: function DataGrid(options) { this.options = { height: "100%", sortable: true, re ...

  5. 一条数据的HBase之旅,简明HBase入门教程1:开篇

    [摘要] 这是HBase入门系列的第1篇文章,主要介绍HBase当前的项目活跃度以及搜索引擎热度信息,以及一些概况信息,内容基于HBase 2.0 beta2版本.本系列文章既适用于HBase新手,也 ...

  6. AUTH_USER_MODEL 添加报错(粗心)

    HINT: Add or change a related_name argument to the definition for 'UserProfile.user_permissions' or ...

  7. openlayers4 入门开发系列结合 echarts4 实现交通线流动图

    前言 openlayers4 官网的 api 文档介绍地址 openlayers4 api,里面详细的介绍 openlayers4 各个类的介绍,还有就是在线例子:openlayers4 官网在线例子 ...

  8. BZOJ 3108: [cqoi2013]图的逆变换

    3108: [cqoi2013]图的逆变换 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 627  Solved: 415[Submit][Statu ...

  9. hdu-4638

    There are n men ,every man has an ID(1..n).their ID is unique. Whose ID is i and i-1 are friends, Wh ...

  10. ARTS-S golang定义类

    package main import "fmt" type Student struct { Num int64 Name string } func(s *Student) s ...