博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Commons.net FTPClient 上传文件
阅读量:6507 次
发布时间:2019-06-24

本文共 2865 字,大约阅读时间需要 9 分钟。

使用 Commons.net FTPClient 上传 文件打不开。

原因,FTPClient 默认使用 ASCII 传输文件,FTP.ASCII_FILE_TYPE;

需要在登录代码后重新指定传输方式。

public static void main(String[] args) {        FTPClient ftpClient = new FTPClient();        try {            // 连接指定服务器,默认端口为21            ftpClient.connect("XXX.XXX.XXX.XXX",921);            System.out.println("connect to server");            // 默认是 ISO-8859-1 设置成 UTF-8 读文件时防止文件名出现乱码            ftpClient.setControlEncoding("UTF-8");            // 获取响应字符串(FTP服务器上可设置)            String replyString = ftpClient.getReplyString();            System.out.println("replyString: " + replyString);            // 获取响应码用于验证是否连接成功            int reply = ftpClient.getReplyCode();            if (!FTPReply.isPositiveCompletion(reply)) {                System.out.println(reply);                System.exit(1);            }            // 登录服务器            boolean login = ftpClient.login("iron", "iron"); //不知道空用户名密码怎么使用。            if (login) {                System.out.println("登录成功!");            } else {                System.out.println("登录失败!");            }            //默认为ASCII_FILE_TYPE,修改成BINARY_FILE_TYPE防止文件打不开            ftpClient.setFileType(FTP.BINARY_FILE_TYPE);            // 获取所有文件和文件夹的名字            // 生成InputStream用于上传本地文件            InputStream in = new FileInputStream("D:\\Libraries\\Desktop\\QQ截图20170321150849.jpg");            // 上传文件--防止中文名出现乱码。需要将文件名做特殊处理            boolean result = ftpClient.storeFile(new String("QQ截图3.jpg".getBytes("UTF-8"),"iso-8859-1"), in);            //框架提供了多种上传方法            //ftpClient.appendFileStream(String remote) throwsIOException            //ftpClient.appendFile(String remote,InputStream local) throws IOException            //ftpClient.storeFileStream(String remote) throwsIOException            //ftpClient.storeFile(String remote,InputStream local) throws IOException            if (result) {                System.out.println("上传成功!");            }            in.close();            //查看FTP中的文件            FTPFile[] files = ftpClient.listFiles();            for (FTPFile file : files) {                if (file.isDirectory()) {                    System.out.println(file.getName() + " 是文件夹");                }                if (file.isFile()) {                    System.out.println(file.getName() + " 是文件");                }            }            // 注销登录            boolean logout = ftpClient.logout();            if (logout) {                System.out.println("注销成功!");            } else {                System.out.println("注销失败!");            }        } catch (Exception e) {            e.printStackTrace();        } finally {            // 关闭链接需要放在finally语句块中            if (ftpClient.isConnected()) {                try {                    ftpClient.disconnect();                } catch (IOException e) {                    e.printStackTrace();                }            }        }    }

  

转载地址:http://lawfo.baihongyu.com/

你可能感兴趣的文章
第六天 if if…else 三木运算符
查看>>
新建文章 1
查看>>
which、whereis、location和fand的区别
查看>>
IP地址和子网划分学习笔记之《子网掩码详解》
查看>>
单词最近距离
查看>>
Android深度探索读后感 第四章
查看>>
软件名称集合
查看>>
方向导数的计算与梯度
查看>>
软件测试
查看>>
Unity3D插件分享
查看>>
尝试写第一个js插件 图片轮播
查看>>
springboot集成swagger
查看>>
实验吧_加了料的报错注入
查看>>
CF1063F String Journey
查看>>
2019-05-21 SQL学习
查看>>
ios图片适配问题
查看>>
牛客网-约数的个数
查看>>
读书笔记二
查看>>
《软件需求十步走》阅读笔记4
查看>>
第1章 shell编程概述
查看>>