FTP服务器案例

一、简述

        FTP是英文“File Transfer Protocol”的缩写,意为“文件传输协议”。FTP是一种用于文件传输的标准网络协议,定义了文件在网络上的传输方式。FTP协议通常用于将文件从一个主机移动到另一个主机,例如将网站上的文件上传到服务器。用户使用FTP客户端软件连接到FTP服务器,通过用户名和密码进行身份验证,并对文件进行上传、下载、删除、重命名等操作。FTP协议通常使用21号端口进行通信。FTP是Internet上最古老、使用最广泛的文件传输协议之一,而且FTP客户端软件在各种操作系统和设备上都有不同的版本和实现方式。 

二、案例

2.1文件查看

package IO.FTP;

import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;

import java.text.SimpleDateFormat;
import java.util.Date;

public class Test {
    public static void main(String[] args) throws Exception{
        //创建基于FTP访问文件服务器的客户端对象
        FTPClient ftpClient = new FTPClient();

        //第一步:连接FTP服务器并验证用户名密码
        ftpClient.connect("192.168.254.177",21);
        ftpClient.login("zhuo","123456");

        //第二步:切换至个人目录
        boolean isChange = ftpClient.changeWorkingDirectory("liangxuhui");
        if (isChange) {
            //切换成功:显示liangxuhui目录下的所有文件
            SimpleDateFormat fmt = new SimpleDateFormat("yyyy年MM月dd日");//设置日期格式
            FTPFile[] ftpFileList = ftpClient.listFiles();
            for (FTPFile file : ftpFileList) {
                String fileName = file.getName();
                fileName = new String(fileName.getBytes("utf-8"));//中文乱码
                System.out.println("文件名称:" + fileName);
                Date createDate = file.getTimestamp().getTime();
                System.out.println("创建时间:" + fmt.format(createDate));
                System.out.println("文件大小:" + file.getSize() + "字节");
            }
        }else {
            //切换失败,创建该文件夹
            ftpClient.makeDirectory("liangxuhui");
        }
        ftpClient.disconnect();//断开连接
    }
}

2.2文件上传

package IO.FTP;

import org.apache.commons.net.ftp.FTPClient;

import java.io.FileInputStream;

public class Test2 {
    public static void main(String[] args) throws Exception{
        //创建基于FTP访问文件服务器的客户端对象
        FTPClient ftpClient = new FTPClient();

        //第一步:连接FTP服务器并验证用户名密码
        ftpClient.connect("192.168.254.177",21);
        ftpClient.login("zhuo","123456");

        //第二步:切换至个人目录
        boolean isChange = ftpClient.changeWorkingDirectory("liangxuhui");
        if (!isChange){
            //创建个人文目录
            ftpClient.makeDirectory("liangxuhui");

            //切换
            ftpClient.changeWorkingDirectory("liangxuhui");
        }

        //第三步:文件上传
        ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);//设置文件类型

        FileInputStream in = new FileInputStream("d:\\test\\R-C.jpg");
        boolean isStore = ftpClient.storeFile(System.currentTimeMillis() + ".jpg", in);//参数:(FTP文件的保存名称,输入流)
        System.out.println(isStore);
        ftpClient.disconnect();
    }
}

2.3文件下载

package IO.FTP;

import org.apache.commons.net.ftp.FTPClient;

import java.io.FileOutputStream;

public class Test3 {
    public static void main(String[] args) throws Exception{
        //创建基于FTP访问文件服务器的客户端对象
        FTPClient ftpClient = new FTPClient();

        //第一步:连接FTP服务器并验证用户名密码
        ftpClient.connect("192.168.254.177",21);
        ftpClient.login("zhuo","123456");

        //第二步:切换至个人目录
        boolean isChange = ftpClient.changeWorkingDirectory("liangxuhui");

        //第三步:下载指定文件
        FileOutputStream outputStream = new FileOutputStream("d:\\test\\"+System.currentTimeMillis()+".jpg");//输出流
        ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);//文件类型
        boolean isRetrieve = ftpClient.retrieveFile("1688797567457.jpg", outputStream);//参数:(下载文件名,输出流)
        System.out.println(isRetrieve);
        ftpClient.disconnect();//断开连接
    }
}

三、总结

        FTP协议包括服务器端和客户端,本博客通过对服务器端文件的查看、上传和下载三方面进行了简单功能的实现,展示了FTP协议是如何基于TCP协议实现的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值