Post参数中的MultipartFile和String

时间:2015-11-05 13:44:42

标签: angularjs spring multipart

可能这可能是基本问题,但是当我尝试使用stackoverflow中提供的各种答案时,我无法得到解决方案。

问题:

我需要从我的角度发送一个文件到服务器。我在stackoverflow中问了同样的问题,可以在这里找到,

Using Multipart without Form in Spring MVC

现在的问题是,我想再向服务器发送一个对象(不是文件,可能是JSON)。我该怎么办?

我已经尝试将Multipart文件和JSON对象合并为一个并发送它但是尝试没有成功,因为春天打了我一些例外。首先,我的方法是否正确?如果不是那么我该怎么办呢?

2 个答案:

答案 0 :(得分:1)

我通过在控制器定义中使用RequestPart注释获得了解决方案,

感谢https://stackoverflow.com/a/30043173/3121941。它为我提供了解决问题的见解。

更新的代码,

@RequestMapping(value = "/someUrl", method = RequestMethod.POST, consumes = {
            "multipart/form-data", MediaType.APPLICATION_JSON_VALUE })
    public Object handleUpload(
            @RequestPart("paramOne") String paramOne,
            @RequestPart("paramTwo") String paramTwo,
            @RequestPart("file") MultipartFile file, Principal user){

我的角色代码是,

$scope.upload = function () {
        var file = $scope.file;
        var obj = new Object();
        var fd = new FormData();
        fd.append("paramOne","xyz");
        fd.append("paramTwo","xyz");
        fd.append("file", file);        
        var uploadUrl = "/someUrl";
        $http.post(uploadUrl, fd, {
            transformRequest: angular.identity,
            headers: {
                'Content-Type': undefined
            }
        }).success(function (data) {
                console.log("Call successful");
        });
    }

答案 1 :(得分:0)

我认为这可能会有所帮助How to process a multipart request consisting of a file and a JSON object in Spring restful service?

这里

 @RequestParam(value="data") String jsonString

意味着,我后来以字符串的形式请求了json,我只是将这个jsonString转换为json对象。