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";
            }
        }
  • 相关阅读:
    SpringBoot-基于Maven工程使用SpringBoot
    Nginx的Mainline version、Stable version、Legacy version的版本区别
    Keepalived+Nginx实现负载均衡高可用
    Angular5学习笔记
    Angular5学习笔记
    Angular5学习笔记
    Angular5学习笔记
    Angular5学习笔记
    Kettle能做什么?
    Angular5学习笔记
  • 原文地址:https://www.cnblogs.com/heyang78/p/4122770.html
Copyright © 2011-2022 走看看