import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.Calendar; import java.util.Date; import org.apache.commons.io.IOUtils; import org.apache.commons.net.ftp.FTPClient; public class UploadByFTP {//就别介意名字为什么只写了Upload了,这不重要→_→ //上传方法 public static Msg FTPUpload(){ FTPClient ftpClient=new FTPClient(); FileInputStream fis=null; try { ftpClient.connect("192.168.1.11");//服务器端的地址 ftpClient.login("admin", "123");//连接时的用户名和密码(在服务器端设置) //上传文件所在地址 File srcFile=new File("C:\\zc.xls"); fis=new FileInputStream(srcFile); //定义要上传到的路径 String lj="/admin/test"; //生成路径(一定要生成路径,不然如果路径不存在的话,怎么传都只会传到根目录下) ftpClient.makeDirectory(lj); //更改工作空间(就是设定路径) ftpClient.changeWorkingDirectory(lj); ftpClient.setBufferSize(1024); ftpClient.setControlEncoding("Utf-8"); //设置文件类型(二进制) ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); //参数1是文件名(一定要后缀) ftpClient.storeFile("hhh.xls", fis); } catch (Exception e) { return MsgUtil.getFailMsg("FTP客户端出错!",null); } finally{ IOUtils.closeQuietly(fis); try { ftpClient.disconnect(); } catch (IOException e) { return MsgUtil.getFailMsg("关闭FTP连接发生异常!",null); } } }
//下载 public static void FTPDownload(){ FTPClient ftpClient=new FTPClient(); FileOutputStream fos=null; try { ftpClient.connect("192.168.1.11"); ftpClient.login("admin", "123"); //文件在服务器的路径 String remoteFileName="/admin/test/hhh.xlsx"; //文件下载后保存的位置 fos=new FileOutputStream("C:\\test.xlsx"); ftpClient.setBufferSize(1024); //设置文件类型(二进制) ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); ftpClient.retrieveFile(remoteFileName, fos); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException("FTP客户端出错!",e); }finally{ IOUtils.closeQuietly(fos); try { ftpClient.disconnect(); } catch (IOException e) { e.printStackTrace(); throw new RuntimeException("关闭FTP连接发生异常!",e); } } } //测试 public static void main(String[] args) { FTPUpload(); FTPDownload(); } }
用到的包