一、上传时同时带上文件与其它参数
public JsonResult<void> submitBook(HttpServletRequest req,@RequestParam("picFile") MultipartFile file,Long bookBaseId,String isbn,String name,String author,String publishCompany){
这里的MultipartFile是spring mvc里的类
那么PostMan怎么配置请求参数?
header不用设置。二、只上传文件,没有参数名
controller取文件代码:
DataInputStream dataStream = new DataInputStream(request.getInputStream());
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] buff = new byte[100]; //buff用于存放循环读取的临时数据
int rc = 0;
while ((rc = dataStream.read(buff, 0, 100)) > 0) {
outStream.write(buff, 0, rc);
}
dataStream.close();
byte[] byteData = outStream.toByteArray();
outStream.flush();
这里用的是request.getInputStream来获取文件,来看看postman的配置:
这次要设置一下header,如图:
要注意的是Content-Length参数必须有,而且值要准确,否则request.getInputStream方法就会报错或获取不了正确的文件。
那这个值是怎么来的,可以new File(xx.jpg).length()获取的值填到这里。
从这些参数的配置,是不是能学到一些http协议的参数的用法?
三、复杂对象json参数的传递
2019-01-29补充。json数据作为参数,怎么传:
粘下spring mvc的代码:
@ApiOperation(value = "保存(编辑)一本书")
@RequestMapping(value="/updateBookInfo",method = {RequestMethod.POST})
public JsonResult<ugcbookvo> updateBookInfo(HttpServletRequest req,@RequestBody UGCBookVo book){
看下postman的配置:
看下header的设置:
原文:用PostMan学习上传图片与json对象