使用RestTemplate下载网络地址文件
/**
* 通过网络地址获取图片
* @param url 网络地址
* @return
*/
public String getPhotoFilePath(String url){
String photoUrl = getPhotoUrl(url);
try {
HttpHeaders headers = new HttpHeaders();
MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
headers.setContentType(type);
headers.add("accept", "*/*");
HttpEntity<Object> httpEntity = new HttpEntity<>(headers);
ResponseEntity<byte[]> exchange = restTemplate.exchange(url, HttpMethod.GET,httpEntity , byte[].class);
byte[] body = exchange.getBody();
File file=new File("d:/"+photoUrl);
if(!file.exists()&&!file.isDirectory()){
file.mkdir();
}
FileOutputStream fileOutputStream = new FileOutputStream(file);
fileOutputStream.write(body);
fileOutputStream.close();
}catch (Exception e){
log.error("上传图片识别",e);
}
return photoUrl;
}
/**
* 获取一个文件的路径
* @param url
* @return
*/
public static String getPhotoUrl(String url){
String photoType = url.substring(url.lastIndexOf("."));
String fileName= UUID.randomUUID().toString().replace("-","")+photoType;
String filepath="/defect/"+fileName;
File file = new File("d:"+"/defect");
if (!file.exists() && !file.isDirectory()) {
file.mkdir();
}
return filepath;
}