Spring MVC实现文件上传
基础准备:
Spring MVC为文件上传提供了直接支持,这种支持来自于MultipartResolver。Spring使用Jakarta Commons FileUpload技术实现了一个MultipartResolver:CommonsMultipartResolver。
Spring MVC上下文中默认没有装配MultipartResolver,因此我们需要配置它。
<!-- 文件上传 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8"></property>
<property name="maxUploadSize" value="52428800"></property>
<property name="uploadTempDir" value="temp"></property>
</bean>
上面设置了文件编码为"UTF-8",设置了最大上传大小为50M,设置了上传文件的临时目录为Web目录下的temp。
控制器:
有了MultipartResolver,就可以在Controller中使用文件上传功能了。Spring MVC将上传文件绑定到MultipartFile对象上。MultipartFile提供了获取上传文件内容、文件名等内容,通过其transferTo()方法可以将文件储存到硬盘中:
/**
* @描述 文件上传演示操作
* @时间 2013-7-26 下午5:17:42
*/
@ResponseBody
@RequestMapping(value = "/fileUpload", method = RequestMethod.POST)
public String doFileUpload(@RequestParam String desc, @RequestParam MultipartFile file)
throws IllegalStateException, IOException {
if (!file.isEmpty()) {
String path = ProjectUtil.getMavenWebProjectPath() + "runtime";
ProjectUtil.createDir(path);
file.transferTo(new File(path + "/" + file.getOriginalFilename()));
} else {
return "fail";
}
return SUCCESS;
}
这里使用了工具类中(ProjectUtil)的两个方法:
/**
* @描述 Maven项目中,获取项目路径
* @时间 2013-7-26 下午5:13:02
* @return 项目路径。如:D:\kuaipan\springmvc\
*/
public static String getMavenWebProjectPath() {
Resource resource = new ClassPathResource("./");
String filePath = "";
try {
filePath = resource.getFile().getAbsolutePath();
} catch (IOException e) {
e.printStackTrace();
}
filePath = filePath.substring(0, filePath.indexOf("target"));
return filePath;
}
/**
* 创建目录
*/
public static void createDir(String filePath) {
File myFile = new File(filePath);
if (!myFile.exists()) {
myFile.mkdirs();
}
}
页面:
页面上,就是一个表单,然后一个文件字段和描述字段。需要注意的是<form>上要有enctype="multipart/form-data"属性定义。
Spring MVC实现文件上传的更多相关文章
- Spring MVC的文件上传
1.文件上传 文件上传是项目开发中常用的功能.为了能上传文件,必须将表单的method设置为POST,并将enctype设置为multipart/form-data.只有在这种情况下,浏览器才会把用户 ...
- Spring MVC的文件上传和下载
简介: Spring MVC为文件上传提供了直接的支持,这种支持使用即插即用的MultipartResolver实现的.Spring MVC 使用Apache Commons FileUpload技术 ...
- 【Spring学习笔记-MVC-13】Spring MVC之文件上传
作者:ssslinppp 1. 摘要 Spring MVC为文件上传提供了最直接的支持,这种支持是通过即插即用的MultipartResolve实现的.Spring使用Jakarta Co ...
- spring mvc ajaxfileupload文件上传返回json下载问题
问题:使用spring mvc ajaxfileupload 文件上传在ie8下会提示json下载问题 解决方案如下: 服务器代码: @RequestMapping(value = "/ad ...
- 0062 Spring MVC的文件上传与下载--MultipartFile--ResponseEntity
文件上传功能在网页中见的太多了,比如上传照片作为头像.上传Excel文档导入数据等 先写个上传文件的html <!DOCTYPE html> <html> <head&g ...
- Java Web 学习(8) —— Spring MVC 之文件上传与下载
Spring MVC 之文件上传与下载 上传文件 表单: <form action="upload" enctype="multipart/form-data&qu ...
- Spring MVC-学习笔记(5)spring MVC的文件上传、下载、拦截器
1.文件上传. spring MVC为文件上传提供了直接的支持,这种支持是即插即用的MultipartResolver(多部分解析器)实现的.spring MVC使用Apache Commo ...
- 基于Spring MVC的文件上传和下载功能的实现
配置文件中配置扫描包,以便创建各个类的bean对象 <context:component-scan base-package="com.neuedu.spring_mvc"& ...
- spring mvc 实现文件上传
例:用户注册提交一个头像文件 第一步,创建项目 ,导入jar包 做文件上传除了要导入spring常规的jar包外,还要导入commons-fifileupload和commons-io这两个jar包. ...
随机推荐
- Delphi7的HtmlParser使用方法
uses HtmlParser procedure TForm4.Button1Click(Sender: TObject); var FNodes:IHtmlElement; aString:str ...
- C# is as
if(obj is ClassA) //遍历类层次,看OBJ是不是ClassA类型{ ClassA a=(ClassA) obj; //遍历类层次,看obj能否转换为ClassA,不成功则抛出异 ...
- DropDownList中显示无限级树形结构
效果图: 数据库表: DirID:目录的ID,ParentID:目录的父路径ID,Name:目录的名字主要代码: using System;using System.Collections;using ...
- puer工具的使用
在项目开发的过程当中,总会有前端开发快完成,后端接口却迟迟提供不了的情况.此时为了不影响前端开发的进度,我们可以借助puer来模拟后端接口测试.简单的说,puer就是一个可以实时刷新的前端服务器.具体 ...
- LeetCode:Remove Duplicates from Sorted Array I II
LeetCode:Remove Duplicates from Sorted Array Given a sorted array, remove the duplicates in place su ...
- 点击事件touches与ios的手势UIGestureRecognizer
.h文件 @property (weak,nonatomic) IBOutlet UILabel *messageLabel;@property (weak,nonatomic) IBOutlet U ...
- Opencv step by step - 阈值化
Opencv里面的阈值化做起来比较简单,只需要一个函数即可: /* Applies fixed-level threshold to grayscale image. This is a basic ...
- ASP.NET MVC 5 入门教程 (3) 路由route
文章来源: Slark.NET-博客园 http://www.cnblogs.com/slark/p/mvc-5-get-started-route.html 上一节:ASP.NET MVC 5 入门 ...
- 你所不知道的Python奇技淫巧
有时候你会看到很Cool的Python代码,你惊讶于它的简洁,它的优雅,你不由自主地赞叹:竟然还能这样写.其实,这些优雅的代码都要归功于Python的特性,只要你能掌握这些Pythonic的技巧,你一 ...
- shell编程之基础
1.初探shell #!/bin/bash echo -e 'hello \nworld' 执行结果 echo 是打印输出字符,-e选项是开启转义功能 注意: 在windows下编写的shell脚本直 ...