您的位置:首页 > 编程语言 > Java开发

springmvc 上传文件

2015-09-01 13:35 344 查看

1.在spring-config.xml中配置文件上传multipartResolver

<!-- 文件上传 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding">
<value>UTF-8</value>
</property>
<!-- 30MB 31457280-->
<property name="maxUploadSize">
<value>31457280</value>
</property>
</bean>


2. jsp页面中form表单上传

form表单的enctype一定是multipart/form-data并且input的name要是给值

<form method="post" action="user/uploadFile" enctype="multipart/form-data"
onsubmit="return ck();">
<input type="file" id="file" name="file">
<input type="submit" value="上传"/>
</form>


3.controller

@RequestMapping("/uploadFile")
public void uploadFile(HttpServletRequest request,Model
model,HttpServletResponse response) throws IllegalStateException,
IOException
{
String savePath = "";
logger.info("----------开始上传----------");
String destPath =
request.getSession().getServletContext().getRealPath("/");
//这个ARCHITECT是我的项目名称,为保证文件不保存在项目路径下,
//在项目目录外创建ARCHITECT_upload文件夹
destPath = destPath.replace("ARCHITECT", "ARCHITECT_upload/");
File mFile = new File(destPath);
if (!mFile.exists()) {
mFile.mkdirs();
}
logger.info("----------文件夹目录已创建成功----------");

CommonsMultipartResolver multipartResolver = new
CommonsMultipartResolver(request.getSession().getServletContext());
if (multipartResolver.isMultipart(request)) {
MultipartHttpServletRequest multipartRequest =
(MultipartHttpServletRequest)request;
Iterator iterator = multipartRequest.getFileNames();
while (iterator.hasNext()) {
MultipartFile file =
multipartRequest.getFile((String)iterator.next());
if (null != file) {
String fileOrginName = file.getOriginalFilename();
System.out.println("orginalName : " + fileOrginName);
String serverPath = mFile + "/" + fileOrginName;
File serverfile = new File(serverPath);
file.transferTo(serverfile);
savePath=serverPath.substring
(serverPath.indexOf("ARCHITECT_upload"),
serverPath.length());
System.out.println(savePath);
}
}
}
logger.info("----------上传成功 :"+ savePath);
WriteResponseUtil write = new WriteResponseUtil();
write.writeResponse(JsonUtil.toJSONString(savePath), response);
logger.info("上传完毕");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息