今天需要用到文件上传,用的是spring框架。在网上搜了好久没找到合适的代码。经过师傅的指点5分钟搞定。觉得挺简单的!
1.首先在applicationContext.xml文件中配置文件上传解决器
<!-- 文件上传拦截 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
</bean>
2.上传的jsp页面、很简单
<form action="/gouwuche3/goods/add.htm" method="post" enctype="multipart/form-data" >
<table align="center" border="1">
<tr>
<td colspan="2">商品信息</td>
</tr>
<tr>
<td>商品名字</td><td><input name="goodsName" id="goodsName" type="text" /></td>
</tr>
<tr>
<td>商品价格</td><td><input name="goodsPrice" id="goodsPrice" type="text" /></td>
</tr>
<tr>
<td>商品描述</td><td><input name="goodsDes" id="goodsDes" type="text" /></td>
</tr>
<tr>
<td>上传照片</td><td><input type="file" name="file" /></td>
</tr>
<tr><td colspan="2"><input type="submit" value="确认" /></td></tr>
</table>
</form>
注意红色的代码,是上传文件用的。
3.在controller中执行文件上传功能。
@RequestMapping(value = "/add")
//MultipartFile来自:org.springframework.web.multipart.MultipartFile;
public ModelAndView addGoods( HttpServletRequest request, HttpSession session,
@RequestParam("file") MultipartFile file) {
ModelAndView mav = new ModelAndView();
if (!file.isEmpty()) {
String path = request.getContextPath() + "/jsp/";
String fileName = file.getOriginalFilename();
try {
String tomcatPath = request.getServletContext().getRealPath("/image//"); //得到保存的路径
FileCopyUtils.copy(file.getBytes(), new File(tomcatPath +"/" + fileName));//FileCopyUtils来自org.springframework.util.FileCopyUtils
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
mav.setViewName("test");
return mav;
}
这就完事了。。。