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

java spring mvc 上传

2016-01-04 12:43 344 查看
Spring mvc 实现上传功能

spring mvc Controller 中的代码

@RequestMapping("/userAddGo")
public ModelAndView userAddGo(HttpServletRequest request,
@ModelAttribute("user") User user) throws IllegalStateException,
IOException {
ModelAndView mav = new ModelAndView("redirect:/user/userList");
userService.insertUser(user);
System.out.println("文件上传。。");
// 创建一个通用的多部分解析器.
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(
request.getSession().getServletContext());
// 设置编码
multipartResolver.setDefaultEncoding("utf-8");
// 判断 request 是否有文件上传,即多部分请求...
if (multipartResolver.isMultipart(request)) {
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
Iterator<String> iter = multiRequest.getFileNames();
while (iter.hasNext()) {
MultipartFile file = multiRequest.getFile(iter.next());
// 判断文件是否为空
if (file.isEmpty()) {
continue;
}
String path = request.getSession().getServletContext()
.getRealPath("/");
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
sdf.format(new Date());
// 获取文件的名字
String originalFilename = file.getOriginalFilename();
String filepath = request.getSession().getServletContext()
.getRealPath("/")
+ "upload/" + file.getOriginalFilename();
this.createParentDirectory(filepath);
File uploadFile = new File(filepath);
file.transferTo(uploadFile);
}
}
return mav;

}

private void createParentDirectory(String path) {
Assert.notNull(path);
File file = new File(path);
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
file.getParentFile().setWritable(true, false);
file.getParentFile().setExecutable(true, false);
}

}


JSP中的代码
<tr>
<td>
<input type="file" id="file" name="file">上传</ipput>
</td>
</tr>

<tr>
<td>
<input type="button" onclick="submit();" value="确认"/>
</td>
</tr>

</table>

</form>
<script type="text/javascript">
function submit(){
$('#ff').submit();
}

</script>


form 标签里面必须有

enctype="multipart/form-data"


<form action="${pageContext.request.contextPath}/user/userAddGo" id="ff" enctype="multipart/form-data"method="post">


spring mvc 中配置参数
<!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 默认编码 -->
<property name="defaultEncoding" value="utf-8" />
<!-- 文件大小最大值 -->
<property name="maxUploadSize" value="10485760000" />
<!-- 内存中的最大值 -->
<property name="maxInMemorySize" value="40960" />
</bean>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: