diff --git a/src/main/java/com/glxp/api/idc/service/impl/IdcServiceImpl.java b/src/main/java/com/glxp/api/idc/service/impl/IdcServiceImpl.java index 9d131e28a..80854e168 100644 --- a/src/main/java/com/glxp/api/idc/service/impl/IdcServiceImpl.java +++ b/src/main/java/com/glxp/api/idc/service/impl/IdcServiceImpl.java @@ -1162,17 +1162,74 @@ public class IdcServiceImpl implements IdcService { return success; } +// @Override +// public boolean signleDownloadFile(String syncIp, String fileName) { +// String filePathSlash = fileName.substring(filePath.length() - 1).equals("/") ? "" : "/"; +// if(!FileUtils.makeDirectory(filePath + filePathSlash + imagePath)) +// IDCUtils.createDirectory(filePath + filePathSlash + imagePath); +// OkHttpClient client = new OkHttpClient().newBuilder() +// .build(); +// ; +// MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded"); +// +// RequestBody body = RequestBody.create(mediaType, "fileName=" + fileName); +// +// Request request = new Request.Builder() +// .url(syncIp + "/spssync/common/downloadFile") +// .post(body) +// .addHeader("Content-Type", "application/x-www-form-urlencoded") +// .build(); +// int total = 0; +// try { +// Response result = client.newCall(request).execute(); +// String msg = result!=null ? result.message().length()>200 ? result.message().substring(0,200) : result.message() : ""; +// +// if (result!=null&&result.isSuccessful()&&MediaType.parse("application/force-download").equals(result.body().contentType())) { +// try (InputStream inputStream = result.body().byteStream()) { +// +// +// FileOutputStream outputStream = new FileOutputStream(filePath + filePathSlash + imagePath+fileName); +// +// byte b[] = new byte[1024]; +// +// int len = 0; +// while ((len = inputStream.read(b)) != -1) { +// total += len; +// outputStream.write(b, 0, len); +// +// } +// +// outputStream.flush(); +// outputStream.close(); +// if(!(total>0)) { +// new File(filePath + filePathSlash + imagePath+fileName).delete(); +// executeSql("delete from idc_file where filePath='"+fileName+"'"); +// } +// +// } catch (Exception e) { +// +// +// } +// } +// if(!(total>0)) { +// String sql = "replace idc_file (filePath,createTime,msg) values ('"+fileName+"',now(),'"+msg+"')"; +// executeSql(sql); +// } +// +// } catch (IOException e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } +// return (total>0); +// } @Override - public boolean signleDownloadFile(String syncIp, String fileName) { - String filePathSlash = filePath.substring(filePath.length() - 1).equals("/") ? "" : "/"; - if(!FileUtils.makeDirectory(filePath + filePathSlash + imagePath)) - IDCUtils.createDirectory(filePath + filePathSlash + imagePath); + public boolean signleDownloadFile(String syncIp, String fileFullName) { OkHttpClient client = new OkHttpClient().newBuilder() .build(); ; MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded"); - RequestBody body = RequestBody.create(mediaType, "fileName=" + fileName); + RequestBody body = RequestBody.create(mediaType, "fileName=" + fileFullName); Request request = new Request.Builder() .url(syncIp + "/spssync/common/downloadFile") @@ -1183,13 +1240,16 @@ public class IdcServiceImpl implements IdcService { try { Response result = client.newCall(request).execute(); String msg = result!=null ? result.message().length()>200 ? result.message().substring(0,200) : result.message() : ""; - + if (result!=null&&result.isSuccessful()&&MediaType.parse("application/force-download").equals(result.body().contentType())) { try (InputStream inputStream = result.body().byteStream()) { - fileName = fileName.substring(fileName.lastIndexOf('/') + 1); + + String path = fileFullName.substring(0,fileFullName.lastIndexOf("/")); + if(!FileUtils.makeDirectory(path)) + IDCUtils.createDirectory(path); - FileOutputStream outputStream = new FileOutputStream(filePath + filePathSlash + imagePath+fileName); + FileOutputStream outputStream = new FileOutputStream(fileFullName); byte b[] = new byte[1024]; @@ -1203,8 +1263,8 @@ public class IdcServiceImpl implements IdcService { outputStream.flush(); outputStream.close(); if(!(total>0)) { - new File(filePath + filePathSlash + imagePath+fileName).delete(); - executeSql("delete from idc_file where filePath='"+fileName+"'"); + new File(fileFullName).delete(); + executeSql("delete from idc_file where filePath='"+fileFullName+"'"); } } catch (Exception e) { @@ -1213,7 +1273,7 @@ public class IdcServiceImpl implements IdcService { } } if(!(total>0)) { - String sql = "replace idc_file (filePath,createTime,msg) values ('"+fileName+"',now(),'"+msg+"')"; + String sql = "replace idc_file (filePath,createTime,msg) values ('"+fileFullName+"',now(),'"+msg+"')"; executeSql(sql); }