• java使用FTPClient实现文件的上传和下载


    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();   } }

     

     

     

    用到的包

  • 相关阅读:
    关于MySql 数据库InnoDB存储引擎介绍
    .netcore 中使用开源的AOP框架 AspectCore
    C#关于反序列化实例时,接收实体字段少于或大于原实体对象 解析测试
    PostgreSQL TIMESTAMP类型 时间戳
    C# 新特性 操作符单?与??和 ?. 的使用
    PostgreSQL 常用函数
    AutoCAD.Net/C#.Net QQ群:193522571 previewicon生成的块图标太小,CMLContentSearchPreviews生成大的图片
    C#winform中OpenFileDialog的用法
    C# winform datagridview 无需点击两次即可编辑内嵌控件的方法和删除默认的空行的方法
    C# winform datagridview 内嵌控件值改变后立即触发事件,而不需要离开该单元格时才触发,此时需要用到dgv_CurrentCellDirtyStateChanged事件
  • 原文地址:https://www.cnblogs.com/IceBlueBrother/p/8421990.html
Copyright © 2020-2023  润新知