Post 参数中的 MultipartFile 和字符串

MultipartFile and String in Post Parameter

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

问题:

我需要从 angular 向服务器发送一个文件。我在 Whosebug 中问过同样的问题,可以在这里找到,

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

我曾尝试将多部分文件和 JSON 对象打包成一个文件并发送,但尝试没有成功,因为 spring 给我打了一巴掌,但出现了一些异常。首先,我的方法是否正确?如果不是,那我该怎么办?

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

感谢 。它为我提供了解决问题的见解。

更新后的代码,

@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){

我的 Angular 代码是,

$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");
        });
    }

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

这里

 @RequestParam(value="data") String jsonString

意思是,我后来以字符串的形式被请求json,我只是将这个json字符串转换成json对象。