springmvc 上传文件并且带参数
直接上代码
@RequestMapping(value = RestUrl.upload, method = RequestMethod.POST)
@ResponseBody
public ResultDTO<FilePathDTO> upload(@RequestParam(value = "file", required = true) MultipartFile file,@RequestParam(value=CommConstants.POST_JSON_DATA) String json) throws Exception{
UploadFileParam param = JSON.parseObject(json, UploadFileParam.class);
return commonService.upload(file,param);
}
目前已经实现了请求后用requestparam接收参数
请求地址:http://localhost/server/sc/common/upload?postdata={shopId:100001,purpose:"commodity",type:"img"}
但是我想通过requestbody接收
请求地址:http://localhost/server/sc/common/upload
body:{shopId:100001,purpose:"commodity",type:"img"}
后台:
@RequestMapping(value = RestUrl.upload, method = RequestMethod.POST)
@ResponseBody
public ResultDTO<FilePathDTO> upload(@RequestParam(value = "file", required = true) MultipartFile file,@Requestbody UploadFileParam param) throws Exception{
return commonService.upload(file,param);
}
会出现415错误~~~貌似spring controller里 参数不能同时存在@requestparam和@requestbody
我比较想都通过requestbody进行操作,body里传的参数不受限制小大,并且安全。
或者能改成这样也可以
@RequestMapping(value = RestUrl.upload, method = RequestMethod.POST)
@ResponseBody
public ResultDTO<FilePathDTO> upload(@Requestbody UploadFileParam param) throws Exception{
//param里可以取到文件
return commonService.upload(param);
}
求详细可靠的解答~~
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
不确定是否理解题主的意思
使用你提到的这种方式 是完全没有问题的啊
此时候你的vo的格式如下即可
前提是你用form表单的形式进行提交,据我所知json似乎是没有表达内嵌文件的格式的。
所以我推荐前端使用form表单提交这几个字段,后端使用你最后的方案就可以实现。
楼主,有没有完美一点解决方案了呢?
楼主使用requestBody的方式可以了吗
我也遇到和楼主一样的问题,上传图片时,同时想要用body传参数