思路:二进制流获取到后转换成本地图片文件,然后把此文件保存oss,最后删除就行
@Resource
private FileController fileController;
@Override
public SysResult getWxCodeShare(Integer userId) {
RecyclerUserSS recyclerUserSS = recyclerUserDao.queryById(userId);
JSONObject map=new JSONObject();
String accessToken = getAccessToken();
map.put("scene","identify="+recyclerUserSS.getIdentify());
byte[] bytes = HttpRequest.post("https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + accessToken)
.body(map.toString())
.execute().bodyBytes();
try {
// 二进制流转换成文件形式进行保存到本地/服务器然后再进行oss存储最后删掉当前文件
ByteArrayInputStream inputStream = new ByteArrayInputStream(bytes);
File file = new File("C:\\Users\\V\\Desktop\\dist\\"+userId+"-"+System.currentTimeMillis()/1000+".png");
if (!file.exists()){
file.createNewFile();
}
FileOutputStream outputStream = new FileOutputStream(file);
int len = 0;
byte[] buf = new byte[1024];
while ((len = inputStream.read(buf, 0, 1024)) != -1) {
outputStream.write(buf, 0, len);
}
FileInputStream fileInputStream = new FileInputStream(file);
MultipartFile multipartFile = new MockMultipartFile(file.getName(), file.getName(),
ContentType.APPLICATION_OCTET_STREAM.toString(), fileInputStream);
SysResult sysResult = fileController.shareCode(multipartFile);
System.out.println(sysResult);
outputStream.flush();
outputStream.close();
file.delete();
return sysResult;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}