用spring实现文件上传
今天需要用到文件上传,用的是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; }
这就完事了。。。