zoukankan      html  css  js  c++  java
  • SpringMVC文件上传的配置

    记述一下步骤以备查。

    准备工作:

    需要把Jakarta Commons FileUpload及Jakarta Commons io的包放lib里。

    我这边的包是:

    commons-fileupload-1.1.1.jar

    commons-io-1.3.2.jar

    然后在spring-servlet.xml进行multipartResolver配置,不配置好上传会不好用。

        <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">   
              <property name="maxUploadSize"><value>100000</value></property> 
              <property name="defaultEncoding"><value>UTF-8</value></property> 
        </bean> 

    接下来就是页面了:

    注意Form的写法和文件上传组件的写法。

        <form action="uploadPosdetailFile.html" method="post" ENCTYPE="multipart/form-data">
        <div class="form" >
                <p>
                    <span class="req"><input id="startDateTxt"  name="startDateTxt" class="field size4" title="Enter the date" /></span>
                    <label>Start Date: <span>(Date format:MM/dd/yyyy,eg:01/01/2014)</span></label>
                </p>
                
                <p>
                    <span class="req"><input id="endDateTxt"  name="endDateTxt" class="field size4" title="Enter the date" /></span>
                    <label>End Date: <span>(Date format:MM/dd/yyyy,eg:12/25/2014)</span></label>
                </p>
                
                <p>
                    <span class="req"><input type="file"  name="uploadFileCtrl" class="field size4" title="Choose the file" /></span>
                    <label>Upload file: <span>(click browse to choose)</span></label>
                </p>
        </div>
        
        <div class="buttons">
            <input id="queryBtn" type="Submit" class="button" value="Submit" />
        </div>
        
        </form>

    再在控制器里写处理代码,注意参数和页面控件的对应关系:

        @RequestMapping(value="/uploadPosdetailFile")
        public String uploadPosdetailFile(@RequestParam("startDateTxt") String startDateTxt, 
                                      @RequestParam("endDateTxt") String endDateTxt,
                                      @RequestParam("uploadFileCtrl") MultipartFile file,HttpServletRequest request,HttpServletResponse response){
            try {
                System.out.println("@@@@@@@@@1.startDateTxt="+startDateTxt);
                System.out.println("@@@@@@@@@2.endDateTxt="+endDateTxt);
                System.out.println("@@@@@@@@@3.file="+file.getOriginalFilename());// 得到上传文件的文件名
                
                if(file.isEmpty()==false){
                    InputStream is=file.getInputStream();
                    InputStreamReader isr = new InputStreamReader(is);
    
                     BufferedReader br=new BufferedReader(isr); 
    
                     String s;
                     while((s=br.readLine())!=null ){
                         System.out.println(s);
                     }
    
                    br.close();
                    isr.close();
                    is.close();
                }
                
                
                return "/pages/posdetail/uploadposdetailresult/index.jsp";
            } catch (Exception e) {
                e.printStackTrace();
                logger.error(e);
                
                request.setAttribute("error", e.getClass());
                request.setAttribute("reason", e.getMessage());
                StackTraceElement[] arr=e.getStackTrace();
                request.setAttribute("stackTraceElements", arr);
                
                return "pages/error/index.jsp";
            }
        }
  • 相关阅读:
    Java String 类
    Java Number & Math 类
    String 方法
    创建格式化字符串
    定义存储过程如下:
    要创建一个EJB,必须要至少编写哪些Java类和接口?
    下面的那一个不属于MVC模式中的对象?
    下列哪个为JSP的隐含对象。
    以下声明正确的是。
    关于JSP生命周期的叙述,下列哪些为真?
  • 原文地址:https://www.cnblogs.com/heyang78/p/4122770.html
Copyright © 2011-2022 走看看