spring mvc 文件上传 form表单
2015-10-30 10:37
561 查看
jsp页面
action
spring 的配置文件
<!-- SpringMVC上传文件时,需要配置MultipartResolver处理器 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8"/>
<!-- 指定所上传文件的总大小不能超过200KB。注意maxUploadSize属性的限制不是针对单个文件,而是所有文件的容量之和 -->
<property name="maxUploadSize" value="200000000"/>
</bean>
<!-- SpringMVC在超出上传文件限制时,会抛出org.springframework.web.multipart.MaxUploadSizeExceededException
该异常是SpringMVC在检查上传的文件信息时抛出来的,而且此时还没有进入到Controller方法中 -->
<bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<props>
<!-- 遇到MaxUploadSizeExceededException异常时,自动跳转到404页面 -->
<prop key="org.springframework.web.multipart.MaxUploadSizeExceededException">/error/404</prop>
</props>
</property>
</bean>
<form class="form-horizontal" role="form" id="form" enctype="multipart/form-data" action="<%=request.getContextPath()%>/userorder/form/order?" method="post" target="hidden_frame"> <div > <input type="checkbox" id="orderTypes" name="orderTypes" value="1" checked="checked" style=" width: 19px; height: 25px; padding: 0 5px 0 0;float:left; "> Symbol <input type="checkbox" name="orderTypes" id="orderTypes" value="2" style=" width: 19px; height: 25px; padding: 0 5px 0 0; "> FootPrint
</div> </ul> <ul class="reg-box"> <li> <label for="">芯 片 名 称 </label> <div class="col-md-9"> <input type="text" name="partNumber" id="partNumber" class="partnum" style="width:300px; height:35px;"style="color:#999;" onBlur="textBlur(this)" onFocus="textFocus(this)"><span class="error error0"></span> <span class="default default1"></span> </li> <li style="list-style:none;float:center;"> <label for="">文 档 链 接 <br>(或上传文件)</label> <input type="text" name="dataSheetLink" id="dataSheetLink" class="datalink" style="width:300px; height:20px;" style="color:#999;" onBlur="textBlur(this)" onFocus="textFocus(this)"> <span class="error error1"> <br> <label for=""></label> <span class="default default2"></span> </li> <div style="display:inline;"> <input type="file" id="file" name="myfiles" class="file" style="width:300px; height:20px;" style="color:#999;" onBlur="textBlur(this)" onFocus="textFocus(this)"/> </span> </div> <li style="list-style:none;float:center;margin-top: 10px"> <label for="">EDA TOOL </label> <div class="col-md-9"> <select style="width:300px; height:45px;" style="color:#999;" id="select0" name="edaTool" > <option value="0">--请选择--</option> <option value="1">11</option> <option value="2">22</option> <option value="3">33</option> </select> </div> </li> </ul> <ul class="reg-box"> <div class="btn"> <button type="submit" value="showmsg" >确定</button> </div> </ul> </form> <iframe name='hidden_frame' id="hidden_frame" style='display:none'></iframe>
action
@RequestMapping(value = "/userorder/form/order", method = RequestMethod.POST) public void userOrderForm(HttpSession session, HttpServletRequest request, HttpServletResponse response, UserOrder userOrder, @RequestParam MultipartFile myfiles) throws IOException { JSONObject jsonObject = null; Map<String, Object> userOrdermap = new HashMap<String, Object>(); UserOrder userOrderParm = new UserOrder(); HttpSession sessions = request.getSession(); User usertemp = (User) sessions.getAttribute("AdminUser"); User user = userService.userByName(usertemp.getUserName()); userOrderParm.setUserId(user.getUserId()); userOrderParm.setOrderTypes(userOrder.getOrderTypes()); userOrderParm.setPartNumber(userOrder.getPartNumber()); userOrderParm.setDataSheetLink(userOrder.getDataSheetLink()); userOrderParm.setEdaTool(userOrder.getEdaTool()); userOrderParm.setConfirmTime(new Date()); Random rd = new Random(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss"); int num = rd.nextInt(9); String originalFilename = myfiles.getOriginalFilename(); int index = originalFilename.substring(0).lastIndexOf("."); String fileType = originalFilename.substring(index + 1, originalFilename.length()); String fileName = sdf.format(new java.util.Date()) .concat(String.valueOf(num)).concat(".").concat(fileType); FileOutputStream out; InputStream stream = null; String basePath = Config.getProperty("OrderUpLoadPath"); stream = myfiles.getInputStream(); out = new FileOutputStream(basePath + fileName, false); int byteCount = 0; byte[] bytes = new byte[1024]; while ((byteCount = stream.read(bytes)) != -1) { out.write(bytes, 0, byteCount); } out.flush(); out.close(); stream.close(); userOrderParm.setUploadDataSheet("/orderfile/" + fileName); int orderSuccess = userOrderService.saveOrder(userOrderParm); if (orderSuccess == 1) { userOrdermap.put("result", 0); } else { userOrdermap.put("result", 1); userOrdermap.put("error", "用户定制失败。"); } jsonObject = JSONObject.fromObject(userOrdermap); response.getWriter().print(jsonObject.toString()); }
spring 的配置文件
<!-- SpringMVC上传文件时,需要配置MultipartResolver处理器 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8"/>
<!-- 指定所上传文件的总大小不能超过200KB。注意maxUploadSize属性的限制不是针对单个文件,而是所有文件的容量之和 -->
<property name="maxUploadSize" value="200000000"/>
</bean>
<!-- SpringMVC在超出上传文件限制时,会抛出org.springframework.web.multipart.MaxUploadSizeExceededException
该异常是SpringMVC在检查上传的文件信息时抛出来的,而且此时还没有进入到Controller方法中 -->
<bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<props>
<!-- 遇到MaxUploadSizeExceededException异常时,自动跳转到404页面 -->
<prop key="org.springframework.web.multipart.MaxUploadSizeExceededException">/error/404</prop>
</props>
</property>
</bean>
相关文章推荐
- java 内存——运行时数据区域
- 关于java接口的一些重要的点
- java中获取根异常并进行分发处理
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式)
- 【Java开发】--jdom解析xml-删除xml
- Spring4+SpringMVC+Mybatis3+MySQL5项目搭建
- Spring framework3.2整合hibernate4.1报错:No Session found for current thread
- maven项目打包
- 使用java.util.concurrent.ThreadFactory来创建线程
- eclipse中和android studio中进行单元测试
- 【Java开发】--jdom解析xml-修改xml
- int 数字0123456转汉子零一二三四五六,后台Java
- eclipse背景颜色修改插件color theme
- spring web mvc 详解
- Android----Eclipse 停在 Android SDK Content Loader
- 【Java开发】--jdom解析xml-获取xml
- myeclipse创建web项目
- Java的深拷贝和浅拷贝
- JAVA ClassLoader
- java.lang.OutOfMemoryError: Java heap space