一.单文件上传
接收参数
@PostMapping(value = "/fileImport")
public ResponseEntity fileImport(@RequestParam("file") MultipartFile file){
return topoService.fileImport(file);
}
逻辑处理
@Override
public ResponseEntity fileImport(MultipartFile file) {
InputStream inputStream = null;
BufferedReader bufferedReader = null;
try {
if (file == null || file.isEmpty()) {
return ResponseEntity.status(500).body(new String("上传文件不能为空".getBytes(), "utf-8"));
}
String fileName = file.getOriginalFilename().toLowerCase();
// if (!fileName.endsWith(".txt")) {
// return ResponseEntity.status(500).body(new String("请上传txt文件".getBytes(), "utf-8"));
// }
if((!"fh-switch-configs.txt".equals(fileName)) && (!"fh-firewall-configs.txt".equals(fileName)) &&
(! "gateway-firewall-connections.txt".equals(fileName)) ){
return ResponseEntity.status(500).body(new String(("请上传文件名为fh-switch-configs.txt、" +
"fh-firewall-configs.txt、gateway-firewall-connections.txt 的文件").getBytes(), "utf-8"));
}
inputStream = file.getInputStream();
StringBuilder stringBuilder = new StringBuilder();
bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String line = null;
boolean firstLine = true;
while ((line = bufferedReader.readLine()) != null) {
if (!firstLine) {
stringBuilder.append(System.getProperty("line.separator"));
} else {
firstLine = false;
}
stringBuilder.append(line);
}
String s1 = stringBuilder.toString();
// System.out.println(stringBuilder.toString());
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json;charset=utf-8"), s1);
if("fh-switch-configs.txt".equals(fileName)){
Response<ResponseBody> execute = hostRestService.putSwitchConfig(requestBody).execute();
if (execute.isSuccessful()) {
ResponseEntity<String> body = ResponseEntity.status(200).body(new String("下发配置成功".getBytes(), "utf-8"));
logger.info("下发switch-configs配置成功");
return ResponseEntity.status(200).body(new String("下发控制器switch-configs配置成功".getBytes(), "utf-8"));
} else {
logger.error(execute.code() + "->下发switch-configs配置失败");
return ResponseEntity.status(500).body(new String("下发控制器switch-configs配置失败".getBytes(), "utf-8"));
}
}
if("fh-firewall-configs.txt".equals(fileName)){
Response<ResponseBody> execute = hostRestService.putFirewallConfig(requestBody).execute();
if (execute.isSuccessful()) {
ResponseEntity<String> body = ResponseEntity.status(200).body(new String("下发firewall-configs配置成功".getBytes(), "utf-8"));
logger.info("下发firewall-configs配置成功");
return ResponseEntity.status(200).body(new String("下发firewall-configs配置成功".getBytes(), "utf-8"));
} else {
logger.error(execute.code() + "->下发firewall-configs配置失败");
return ResponseEntity.status(500).body(new String("下发控制器firewall-configs配置失败".getBytes(), "utf-8"));
}
}
if("gateway-firewall-connections.txt".equals(fileName)){
Response<ResponseBody> execute = hostRestService.putConnections(requestBody).execute();
if (execute.isSuccessful()) {
ResponseEntity<String> body = ResponseEntity.status(200).body(new String("下发gateway-firewall-connections配置成功".getBytes(), "utf-8"));
logger.info("下发gateway-firewall-connections配置成功");
return ResponseEntity.status(200).body(new String("下发gateway-firewall-connections配置成功".getBytes(), "utf-8"));
} else {
logger.error(execute.code() + "->下发gateway-firewall-connections配置失败");
return ResponseEntity.status(500).body(new String("下发控制器gateway-firewall-connections配置失败".getBytes(), "utf-8"));
}
}
} catch (Exception e) {
logger.error(logger.getName()+e.getMessage());
} finally {
try {
if (inputStream != null) {
inputStream.close();
}
if (bufferedReader != null) {
bufferedReader.close();
}
} catch (Exception e) {
logger.error(logger.getName()+e.getMessage());
}
}
return ResponseEntity.status(500).body("exception error");
}