打开APP
未登录
开通VIP,畅享免费电子书等14项超值服
开通VIP
首页
好书
留言交流
下载APP
联系客服
SpringMVC上传文件demo(转)
dabinglibrary
>《SpringMVC》
2016.02.17
关注
package
com.jadyer.controller;
import
java.io.File;
import
java.io.IOException;
import
java.util.HashMap;
import
java.util.Map;
import
javax.servlet.http.HttpServletRequest;
import
org.apache.commons.io.FileUtils;
import
org.springframework.stereotype.Controller;
import
org.springframework.ui.Model;
import
org.springframework.web.bind.annotation.RequestMapping;
import
org.springframework.web.bind.annotation.RequestMethod;
import
org.springframework.web.bind.annotation.RequestParam;
import
org.springframework.web.multipart.MultipartFile;
import
com.jadyer.model.User;
/**
* SpringMVC中的文件上传
*
* @see 第一步:由于SpringMVC使用的是commons-fileupload实现,故将其组件引入项目中
* @see 这里用到的是commons-fileupload-1.2.2.jar和commons-io-2.0.1.jar
* @see 第二步:在####-servlet.xml中配置MultipartResolver处理器。可在此加入对上传文件的属性限制
* @see 第三步:在Controller的方法中添加MultipartFile参数。该参数用于接收表单中file组件的内容
* @see 第四步:编写前台表单。注意enctype="multipart/form-data"以及<input type="file" name="****"/>
* @author 宏宇
* @create May 12, 2012 1:26:21 AM
*/
@Controller
@RequestMapping
(
"/user"
)
public
class
UserController {
private
final
static
Map<String,User> users =
new
HashMap<String,User>();
//模拟数据源,构造初始数据
public
UserController(){
users.put(
"张起灵"
,
new
User(
"张起灵"
,
"闷油瓶"
,
"02200059"
,
"menyouping@yeah.net"
));
users.put(
"李寻欢"
,
new
User(
"李寻欢"
,
"李探花"
,
"08866659"
,
"lixunhuan@gulong.cn"
));
users.put(
"拓拔野"
,
new
User(
"拓拔野"
,
"搜神记"
,
"05577759"
,
"tuobaye@manhuang.cc"
));
users.put(
"孙悟空"
,
new
User(
"孙悟空"
,
"美猴王"
,
"03311159"
,
"sunhouzi@xiyouji.zh"
));
}
@RequestMapping
(
"/list"
)
public
String list(Model model){
model.addAttribute(
"users"
, users);
return
"user/list"
;
}
@RequestMapping
(value=
"/add"
, method=RequestMethod.GET)
public
String addUser(){
return
"user/add"
;
}
@RequestMapping
(value=
"/add"
, method=RequestMethod.POST)
public
String addUser(User user,
@RequestParam
MultipartFile[] myfiles, HttpServletRequest request)
throws
IOException
{
//如果只是上传一个文件,则只需要MultipartFile类型接收文件即可,而且无需显式指定@RequestParam注解
//如果想上传多个文件,那么这里就要用MultipartFile[]类型来接收文件,并且还要指定@RequestParam注解
//并且上传多个文件时,前台表单中的所有<input type="file"/>的name都应该是myfiles,否则参数里的myfiles无法获取到所有上传的文件
for
(MultipartFile myfile : myfiles){
if
(myfile.isEmpty()){
System.out.println(
"文件未上传"
);
}
else
{
System.out.println(
"文件长度: "
+ myfile.getSize());
System.out.println(
"文件类型: "
+ myfile.getContentType());
System.out.println(
"文件名称: "
+ myfile.getName());
System.out.println(
"文件原名: "
+ myfile.getOriginalFilename());
System.out.println(
"========================================"
);
//如果用的是Tomcat服务器,则文件会上传到\\%TOMCAT_HOME%\\webapps\\YourWebProject\\WEB-INF\\upload\\文件夹中
String realPath = request.getSession().getServletContext().getRealPath(
"/WEB-INF/upload"
);
//这里不必处理IO流关闭的问题,因为FileUtils.copyInputStreamToFile()方法内部会自动把用到的IO流关掉,我是看它的源码才知道的
FileUtils.copyInputStreamToFile(myfile.getInputStream(),
new
File(realPath, myfile.getOriginalFilename()));
}
}
users.put(user.getUsername(), user);
return
"redirect:/user/list"
;
}
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报
。
打开APP,阅读全文并永久保存
查看更多类似文章
猜你喜欢
类似文章
【热】
打开小程序,算一算2024你的财运
SpringMvc实现上传图片的三种方法学习
通用上传下载组件commons-fileupload(基于SpringMVC框架)
spring boot+thymeleaf 文件上传,下载功能实现
用jspsmartupload进行上传下载(数据库)
[CKEditor那点事儿]使用java开发ckeditor的浏览服务器文件功能
bufferedReader和bufferedWriter用法
更多类似文章 >>
生活服务
热点新闻
留言交流
回顶部
联系我们
分享
收藏
点击这里,查看已保存的文章
导长图
关注
一键复制
下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!
联系客服
微信登录中...
请勿关闭此页面
先别划走!
送你5元优惠券,购买VIP限时立减!
5
元
优惠券
优惠券还有
10:00
过期
马上使用
×