JAva非同期アップロードファイル(方式2)

4438 ワード

H 5のFormDataを使用して非同期ファイルのアップロードを実現し、ブラウザの互換性に注意することができます.この方法でJSPがH 5に基づいていることを確認してください.フロントエンドコードは次のとおりです.
"ff" enctype="multipart/form-data" method="post" action="upload/testUpload"> "file" type="file" name="file" multiple="multiple"/>
type="button" value=" FormData" onclick="formDataSubmit()" />

jsコードは以下の通りです.
<script>
    function formDataSubmit(){
        var form = document.getElementById('ff');  
        var formdata = new FormData(form);  
        $.ajax({
            type: "POST",
            url:"upload/formDataSubmit",
            data:formdata,
            async: false, //        ,   true
            contentType : false,  //  jQuery  Content-Type      
            processData : false,  //  jQuery       
            success: function(data) {
                if(data == 'true'){
                    alert("  !");
                }else{
                    alert("  !");
                }
            }
        });
    }
script>

バックグラウンドコードは次のとおりです.
//  formData
    @RequestMapping("/formDataSubmit")
    @ResponseBody
    public String formDataSubmit(@RequestParam(value = "file", required = false) MultipartFile file,
            HttpSession session) {
        if (!file.isEmpty()) {
            try{
                   String path = session.getServletContext().getRealPath("/upload/");  //        
                   String fileName = file.getOriginalFilename();
                   String fileType = fileName.substring(fileName.lastIndexOf(".")); //     
                   String newName=new Date().getTime() + fileType;
                   File file2 = new File(path,newName); //      
                   file.transferTo(file2);
                }catch(Exception e){
                    return "false";
            }
        }
        return "true";
    }