Java 在春季使用ResponseBody上传图像

Java 在春季使用ResponseBody上传图像,java,spring-mvc,httprequest,Java,Spring Mvc,Httprequest,我使用此代码上传图像,但我一直得到415不支持的媒体类型 @RequestMapping(value = "/updateImage" , method = RequestMethod.POST) public @ResponseBody ResponseMsg uploadFileHandler( @RequestHeader(value="userid" ,required=false) String userid, @Request

我使用此代码上传图像,但我一直得到415不支持的媒体类型

@RequestMapping(value = "/updateImage" , method = RequestMethod.POST)
    public @ResponseBody ResponseMsg uploadFileHandler( 
            @RequestHeader(value="userid" ,required=false) String userid,
            @RequestHeader(value="name" ,required=false) String name,
            @RequestHeader(value="phone" ,required=false) Integer phone,
            @RequestBody MultipartFile multipartFile, 
            HttpServletRequest request) throws IllegalStateException, IOException {
        System.out.println("hi");
        String orgName = multipartFile.getOriginalFilename();
            orgName = CommonUtils.createUniqueFileName(orgName);

            ServletContext sc = request.getSession().getServletContext();
            String filePath = "uploadedImages/" + orgName;
            String completePath = sc.getRealPath("/") + "/" + filePath;
            File dest = new File(completePath);
            multipartFile.transferTo(dest);

            ResponseMsg responseMsg = CommonUtils.checkParam(userid, name, phone,filePath);
            if (responseMsg.getStatus().equalsIgnoreCase("True"))
                responseMsg = userService.updateProfile(userid, name, phone,filePath);
            return responseMsg;
    }
  • 你有没有在你的应用程序上下文中找到一个新的上下文,例如:
  • 您是否有将HTTP请求正文转换为多部分文件的方法?默认情况下,Spring不附带此功能。阅读
  • 在我看来,与其映射整个HTTP请求(例如:
    @RequestBody MultipartFile MultipartFile
    ),不如只映射特定的表单字段,例如:
    @RequestParam('someFileUpload')MultipartFile uploadedFile
    ,这是假设您在html表单中使用文件选择,例如:

加载项servlet-context.xml

<beans:bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />

内部控制器


public void method(@RequestParam MultipartFile file){..}

您能将html表单代码粘贴到这里吗?请确保将
enctype=“multipart/form data”method=“post”
放在表单标记的属性列表上。请检查它的olready post