微信ウィジェットマルチメディアファイルのアップロードとダウンロード(springbootフレームワーク)
6056 ワード
私は自分で小さいプログラムの出会う穴を開発して、みんなに分かち合って、大量の時間を浪費することを避けます
/**
*
* @param file
*/
public FileUploadOrDownload uploadTempMedia(String file) {
//
HttpHeaders headers = new HttpHeaders();
MediaType type = MediaType.parseMediaType("multipart/form-data;charset=UTF-8");//multipart/form-data text/plain
headers.setContentType(type);
FileSystemResource resource = new FileSystemResource(new File(file));
//
MultiValueMap map = new LinkedMultiValueMap();
map.add("resource", resource);
HttpEntity> httpEntity = new HttpEntity>(map, headers);
// accesstoken( accesstoken , accesstoken)
AccessToken accesstoken = iAccessTokenDao.find("smallProgram");
String url = "https://api.weixin.qq.com/cgi-bin/media/upload?access_token="+accesstoken.getAccess_token()+"&type=image";
RestTemplate restTemplate = new RestTemplate();
// , url
ResponseEntity responseEntity = restTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class);
// ( json)
if (responseEntity!=null&&responseEntity.getStatusCode()==HttpStatus.OK) {
String sessionData = responseEntity.getBody();
FileUploadOrDownload result = JSON.parseObject(sessionData, FileUploadOrDownload.class);
return result;
} else {
return null;
}
}
/**
*
* @param media_id id
*/
@Override
public String getTempMedia(String media_id) {
// accesstoken( accesstoken)
AccessToken accesstoken = iAccessTokenDao.find("smallProgram");
String url = "https://api.weixin.qq.com/cgi-bin/media/get?access_token="+accesstoken.getAccess_token()+"&media_id="+media_id;
RestTemplate restTemplate = new RestTemplate();
// , url
ResponseEntity<byte[]> responseEntity = restTemplate.exchange(url, HttpMethod.GET, null, byte[].class);
// ( , json)
if (responseEntity!=null&&responseEntity.getStatusCode()==HttpStatus.OK) {
byte[] sessionData = responseEntity.getBody();
try {
for (int i = 0; iif (sessionData[i]<0) {//
sessionData[i] += 256;
}
}
// jpg
String savePath = "C:/Users/Administrator/Desktop";//
if (!savePath.endsWith("/")) {
savePath += "/";
}
//
String fileExt = responseEntity.getHeaders().getContentType().getSubtype();
// mediaId
String filePath = savePath + media_id + "." + fileExt;
OutputStream out = new FileOutputStream(filePath);
out.write(sessionData);
out.flush();
out.close();
return filePath;
} catch (Exception e) {
throw new WxPreWebBaseException("", " ", " ", e);
}
} else {
return null;
}
}