这里仅仅是对ftp工具类的简单使用,不少东西还不是很了解。固然学以至用,先用到这里吧。java
不少知识点是相互联系的,但愿之后的例子中可以结合更多的知识点进行实例编写,这样也有助于知识的巩固。服务器
下面是我本身项目中用到的代码工具
/** * 下载pdf文件 */ public String downLoadPdf(String url,String contNo,String localPdfName){ String newUrl=""; String pathUrl="172.18.100.165"; //FTP服务器hostname int port=21;//FTP服务器端口 String username="shwasextt20\\ftp"; //FTP登陆帐号 String password="qwerty1!"; //FTP登陆密码 String remotePath="/Imagedownload";//FTP服务器上的相对路径 String fileName;//要下载的文件名 // String localPath="I:\\2015\\workspace\\workspace_newng\\wj\\WebContent\\wwwroot\\ng\\downLoad";//下载后保存到本地的路径 String localPath="C:\\project\\b2c\\cms.ear\\cms.war\\wwwroot\\ng\\downLoad";//下载后保存到本地的路径 // String localPath="C:\\B2C\\cms.ear\\cms.war\\wwwroot\\ng\\downLoad";//下载后保存到本地的路径 String localName = ""; Date date = new Date(); SimpleDateFormat dr = new SimpleDateFormat("yyyyMMddHHmmss"); //重命名(保单号+时间) localName = localPdfName; if(!"".equals(url) && url !=null){ // String backUrl = "ftp://172.18.100.165/Imagedownload/0180050037-个险合同-电子合同-201537071208(66e735db-8ddf-4e0e-b70c-339544ff630b).PDF"; fileName = url.split("/")[4]; pathUrl = url.split("/")[2]; //生产环境ftp判断 if("172.16.252.100".equals(pathUrl)){ username = "shwasextp20\\ftp"; }else if("172.16.252.110".equals(pathUrl)){ username = "shwasextp21\\ftp"; }else{ username = "shwasextt20\\ftp"; } FTPClient ftp = new FTPClient(); try { ftp.connect(pathUrl,port); ftp.login(username,password); System.out.println(ftp.isConnected()); ftp.enterLocalPassiveMode(); ftp.setControlEncoding("GBK"); ftp.setFileType(ftp.BINARY_FILE_TYPE); ftp.changeWorkingDirectory(remotePath); OutputStream outputStream = null; FTPFile[] fs = ftp.listFiles(); for (int i = 0; i < fs.length; i++) { FTPFile ff = fs[i]; if (ff.getName().equals(fileName)) { InputStream in = ftp.retrieveFileStream(new String(ff.getName().getBytes("GBK"), "ISO-8859-1")); int len = 0; long size = 0; byte[] bt = new byte[1024]; outputStream=new BufferedOutputStream(new FileOutputStream(localPath+"\\"+localName+".pdf")); while ((len = in.read(bt)) > 0) { outputStream.write(bt, 0, len); // outputStream.flush(); size = size + len; // System.out.println(fileName + "已xiazai :" + size); } newUrl = "cms/wwwroot/ng/downLoad/"+localName+".pdf"; outputStream.flush(); } } outputStream.close(); ftp.logout(); } catch (SocketException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return newUrl; }