如何在Spring MVC中将Image从jsp传递给控制器

时间:2017-03-20 07:55:44

标签: javascript ajax spring-mvc

将图像文件从html发送到Spring MVC中的控制器页面

File to upload: <input type="file" name="UploadFile" id="file"><br>
<input type="submit" value="Upload" onclick="sortByDateeeee()">

以javascript格式获取此图像文件并传递给控制器​​。

function sortByDateeeee(){
    var request = document.getElementById("file").value;

    var url=CONTEXT_ROOT+"/login/uploadFile";
    $.ajax({  
        type: "POST",  
        url: url,  
        data:{ 
            "request": request
            },
         success: function(response){
            //alert(response);
        }
        });  
}

关注控制器

@ResponseBody
    @RequestMapping(value="/uploadFile", method=RequestMethod.POST)
    @HttpMethodConstraint(value = "POST")
    public  String uploadFileHandler(@RequestParam(required=false) HttpServletRequest request)
System.out.println("request: "+request);

}

我的问题是无法呼叫控制器..请帮我摆脱这个。

2 个答案:

答案 0 :(得分:1)

<input type="file" name="file" />
<script type="text/javascript">
        function sortByDateeeee() {
            var formData = new FormData();
            formData.append('file', $('input[type=file]')[0].files[0]);
            console.log("form data " + formData);
            $.ajax({
                url : 'login/uploadFile',
                data : formData,
                processData : false,
                contentType : false,
                type : 'POST',
                success : function(data) {
                    alert(data);
                },
                error : function(err) {
                    alert(err);
                }
            });
        }
    </script>

并在您的控制器中

@RequestMapping(method = RequestMethod.POST)
public @ResponseBody String doUpload(@RequestParam("file") MultipartFile multipartFile) {                 
    return "Uploaded: " + multipartFile.getSize() + " bytes";
}

答案 1 :(得分:0)

我认为网址只是

var url="uploadFile";

。您可能不需要添加其他内容