package com.moral.controller; import com.moral.common.xml.Version; import org.apache.commons.net.ftp.FTPClient; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; import org.springframework.web.bind.annotation.*; import org.xml.sax.InputSource; import java.io.*; @RestController @RequestMapping("upgrade") @CrossOrigin(origins = "*", maxAge = 3600) public class UpgradeController { private String fileName = "Version.xml"; private String ip = "121.40.92.176"; private String userName = "ftp_user"; private String userPwd = "qwer1234"; private int port = 21; private String path = "/"; @RequestMapping(value = "/index", method = RequestMethod.GET) public Version index() { Version version = new Version(); FTPClient ftpClient = new FTPClient(); try { ftpClient.connect(ip, port); ftpClient.login(userName, userPwd); if (path != null && path.length() > 0) { ftpClient.changeWorkingDirectory(path); } String content = readFile(ftpClient); if(ftpClient.isConnected()) { ftpClient.logout(); ftpClient.disconnect(); } SAXReader reader = new SAXReader(); Document document = reader.read(new InputSource(new ByteArrayInputStream(content.getBytes("utf-8")))); Element root = document.getRootElement(); version.setVer(root.element("Ver").getText()); version.setFileName(root.element("FileName").getText()); version.setFileMD5Hash(root.element("FileMD5Hash").getText()); } catch (Exception e) { e.printStackTrace(); } // version.setVer("a"); // version.setFileName("b"); // version.setFileMD5Hash("c"); return version; } public String readFile(FTPClient ftpClient) { InputStream ins = null; StringBuilder builder = null; try { ins = ftpClient.retrieveFileStream(fileName); BufferedReader reader = new BufferedReader(new InputStreamReader(ins,"utf-8")); String line; builder = new StringBuilder(150); while ((line = reader.readLine()) != null) { builder.append(line); } reader.close(); if (ins != null) { ins.close(); } ftpClient.getReply(); } catch (IOException e) { e.printStackTrace(); } return builder.toString(); } }