spring mvc 文件上传 form表单

jsp页面

<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; ">&nbsp;&nbsp;Symbol&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                <input type="checkbox"  name="orderTypes" id="orderTypes" value="2" style=" width: 19px; height: 25px; padding: 0 5px 0 0; ">&nbsp;&nbsp;FootPrint

            </div>
        </ul>

           <ul class="reg-box">
                <li>
                    <label for="">芯&nbsp;片&nbsp;名&nbsp;称&nbsp;&nbsp;</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="">文&nbsp;档&nbsp;链&nbsp;接&nbsp;&nbsp;<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)">&nbsp;&nbsp;<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)"/>&nbsp;&nbsp;</span>
                   </div>
                <li style="list-style:none;float:center;margin-top: 10px">
                <label for="">EDA&nbsp;&nbsp;&nbsp;TOOL&nbsp;&nbsp;&nbsp;</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>

posted @ 2015-10-30 10:37  荣耀海布里  阅读(365)  评论(0编辑  收藏  举报