您的位置:首页 > 编程语言 > Java开发

Spring RestTemplate使用ByteArrayResource上传方式

2015-09-29 15:43 1511 查看
Spring RestTemplate使用ByteArrayResource上传方式代码实现

1. 有哪些应用场景?在程序没有实际文件,只有字节数据可以使用此方法进行上传数据.如android 中的拍照后返回的字节数据等.

2. 代码实现

MultiValueMap<String, Object> parts = new LinkedMultiValueMap<String, Object>();
//			parts.add("uploadfile", new FileSystemResource(uploadfile));//传统方式
ByteArrayOutputStream bos = new ByteArrayOutputStream();
InputStream is = new FileInputStream(uploadfile);
byte[] buffer = new byte[1024];
while (is.read(buffer) > 0) {
bos.write(buffer);
}
is.close();
bos.close();
ByteArrayResource arrayResource = new ByteArrayResource(bos.toByteArray()){
@Override
public String getFilename() throws IllegalStateException {
return "c://test.jpg";
}

};
parts.add("uploadfile", arrayResource);


3. 代码解析

  3.1 ByteArrayResource类需要实现getFileName()方法返回一个文件名称

3.2.其中的bos.toByteArray() 可以为任意字节数据
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: