Springmvc環境でajaxfileuploadを使用する.jsファイルアップロード

7756 ワード

controller:
/* #region */

    @RequestMapping(produces = "text/html;charset=UTF-8", value = "/unisi-plugins-core-files/component-async/upload")
    @ResponseBody
    public String upload(@RequestParam("uname") String uname, @RequestParam MultipartFile[] image_file,
            HttpServletRequest request, HttpServletResponse response) throws IOException {
        //                 
        com.unisi.framework.core.utilities.ConsoleHelper.printOut("           ");
        //      Tomcat   ,       \\%TOMCAT_HOME%\\webapps\\YourWebProject\\upload\\    
        //              commons.io.FileUtils ,      /upload    ,        
        String realPath = request.getSession().getServletContext().getRealPath("/upload");
        //               
        response.setContentType("text/plain; charset=UTF-8");
        //           PrintWriter  
        PrintWriter out = response.getWriter();
        //        (         )
        String originalFilename = null;
        //           ,    MultipartFile        ,        @RequestParam  
        //          ,       MultipartFile[]       ,     @RequestParam  
        //        ,        <input
        // type="file"/> name    image_file,      image_file            
        for (MultipartFile myfile : image_file) {
            if (myfile.isEmpty()) {
                out.print("1`        ");
                out.flush();
                return null;
            } else {
                originalFilename = myfile.getOriginalFilename();
                com.unisi.framework.core.utilities.ConsoleHelper.printOut("    : " + originalFilename);
                com.unisi.framework.core.utilities.ConsoleHelper.printOut("    : " + myfile.getName());
                com.unisi.framework.core.utilities.ConsoleHelper.printOut("    : " + myfile.getSize());
                com.unisi.framework.core.utilities.ConsoleHelper.printOut("    : " + myfile.getContentType());
                try {
                    //       IO      ,  FileUtils.copyInputStreamToFile()           IO   
                    //        Spring   MultipartFile.transferTo(File
                    // dest)         
                    FileUtils.copyInputStreamToFile(myfile.getInputStream(), new File(realPath, originalFilename));
                } catch (IOException e) {
                    com.unisi.framework.core.utilities.ConsoleHelper
                            .printOut("  [" + originalFilename + "]    ,      ");
                    e.printStackTrace();
                    out.print("1`      ,   !");
                    out.flush();
                    return null;
                }
            }
        }
        //    Windows     [D:\Develop\apache-tomcat-6.0.36\webapps\AjaxFileUpload\\upload\     .jpg]
        // System.out.println(realPath + "\\" + originalFilename);
        //    Windows     [/AjaxFileUpload/upload/     .jpg]
        // System.out.println(request.getContextPath() + "/upload/" +
        // originalFilename);
        //      [realPath + "\\" + originalFilename]  
        //    Windows <img src="file:///D:/aa.jpg">  firefox  , <img
        // src="D:/aa.jpg">firefox    
        out.print("0`" + request.getContextPath() + "/upload/" + originalFilename);
        out.flush();
        return null;
    }
    /* #endregion */

Springmvcプロファイル:
<!-- region upload config -->
    <bean id="multipartResolver"
        class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxUploadSize" value="10485760" />
    </bean>
    <!-- endregion spring -->

フロント:


<
script type="text/javascript"> function ajaxFileUpload(){     //     $.ajaxFileUpload({         // ( , )         url:' ?uname= ',         secureuri:false,                       // , false         fileElementId:'image_file',           // id         dataType:'text',                       // , json xml         success:function(data, status){        //            alert(111);         },         error:function(data, status, e){ //             alert(222);         }     }); } </script> <input type="file" name="image_file" id="image_file" /> <input value="Upload" type="button" id="upload-form" name="upload-form" onclick="ajaxFileUpload()"/>

 
もちろん、以上の構成コード以外はajaxfileuploadを参照する.js.もし問題があれば、伝言を残してください.