目录

一、FTP协议:

二、文件上传:

1.连接服务器

2.登录操作

3.上传操作

三.文件下载

1.连接服务器

2.登录操作

3.下载操作

四. 总结:


一、FTP协议:

ftp是(File Transfer Protocol)的缩写,文件传输协议必然是用来传输文件的协议。并且是用来在两台计算机之间传输文件,是internet中应用非常广泛的服务之一。FTP是一种基于TCP的协议,具有跨平台的特性,支持Windows,Linux,Unix等操作系统。采用客户/服务器模式,通过FTP服务器可以快速的下载,上传文件。同时它也是一个应用程序,通过FTP客户端与他人的服务器连接,可以访问服务器上的文件或信息。FTP(文件传输协议)也是C/S架,分为两部分:FTP服务器、FTP客户端。服务器是基于Easy FTP服务器,如图所示:

二、文件上传:

由于FTP协议的传输是基于TCP协议,所以步骤大致分为:建立与服务器的连接、登录操作、具体实现的操作、断开连接。

1.连接服务器

 // 1.创建FTPClient的用户对象FTPClient ftpClient = new FTPClient();// 连接服务器ftpClient.connect("192.168.254.185", 21);

2.登录操作

 // 2.登录【用户名,密码】ftpClient.login("****", "*****");

3.上传操作

首先先确定上传至服务器的哪个文件夹,若没有此文件夹则创建此文件夹;接着获取上传文件的位置;然后设置上传文件的类型,通过storeFile()方法将目标文件上传至服务器;最后切记断开与服务器的连接。

 // 3.上传操作// 切换为指定的文件夹boolean isChange = ftpClient.changeWorkingDirectory("data");// 判断文件是否存在if(!isChange) {// 不存在,则创建文件ftpClient.makeDirectory("data");// 在切换至指定的文件夹ftpClient.changeWorkingDirectory("data");}// 设置上传的文件类型ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);  // 上传的目标文件位置FileInputStream fileLoad = new FileInputStream("E://JavaTest//aaa//lazy.jpg")// 上传文件// 参数1:保存的文件名称//参数2:本地的文件位置ftpClient.storeFile("data.jpg", fileLoad);} catch (IOException e) {e.printStackTrace();}finally{try {// 必须断开与服务器的连接ftpClient.disconnect();} catch (IOException e) {               e.printStackTrace();}}

三.文件下载

文件的下载也是大致分为三部分:建立于服务器之间的连接、登录操作、具体操作、断开连接。

1.连接服务器

 // 1.创建FTPClient的用户对象FTPClient ftpClient = new FTPClient();// 连接服务器ftpClient.connect("192.168.254.185", 21);

2.登录操作

 // 2.登录【用户名,密码】ftpClient.login("****", "*****");

3.下载操作

首先先获取服务器上的文件;接着选择下载的文件;然后设置下载文件的类型,通过retrieveFile()方法将目标文件下载至本地文件中;最后切记断开与服务器的连接。

 // 3.存储至本地磁盘的位置// 获取的图片名称String fileName = "lay.jpg";try (FileOutputStream out = new FileOutputStream("E:\\JavaTest\\ccc\\" + fileName)) {           // 切换至文件的位置ftpClient.changeWorkingDirectory("bbb");// 设置文件的类型ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);// 参数1:文件保存的名称// 参数2:下载至本地的位置ftpClient.retrieveFile(fileName, out);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {try {// 断开与服务器的连接ftpClient.disconnect();} catch (IOException e) {e.printStackTrace();}}

四. 总结:

清楚FTP协议的文件传输是基于TCP/IP协议上,TCP协议最主要的点是:客户端与服务器之间是建立连接,实现点对点的传输。所以在文件传输或下载时,先建立连接,再登录验证,然后实现具体的操作过程,最后切记要断开客户端与服务器之间的连接。

基于FTP协议的文件传输与下载相关推荐

  1. 基于FTP协议实现文件上传与下载

    目录 一.FTP简介 二.关于FTP服务器 三.文件上传 分步讲解: 完整实现代码: 四.下载文件 分步讲解: 完整实现代码: 小结 一.FTP简介 FTP(File Transfer Protoco ...

  2. FTP协议(文件传输协议)

    FTP是FileTransferProtocol(文件传输协议)的英文简称,而中文简称为"文传协议".用于Internet上的控制文件的双向传输.同时,它也是一个应用程序(Appl ...

  3. 教你写一个ftp协议(文件传输协议)

    一.FTP协议简介 FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为"文传协议".用于Internet上的控制文件的双向传输.同时,它 ...

  4. linux tcp文件分包_在Linux下基于TCP协议的文件传输程序.

    [设计目的] 通过 Linux C 编程,设计一个基于 TCP/IP 的文件传输系统,实现网络文件的收发 [设计环境] Ubuntu 12.04 [设计方案] ( 1 )文件读写 任意文件都可以二进制 ...

  5. Qt网络编程小项目-基于Tcp协议的文件传输项目

    目录 项目描述 Qt下Tcp服务器端和客户端流程: 具体流程: 客户端: 服务器端: 源码: 服务器端: 服务器头文件: 服务器源文件: 服务器端ui 客户端: 客户端头文件: 客户端源文件: 客户端 ...

  6. udt编写高性能服务器,基于UDT协议的文件传输服务的设计与实现

    The design and implementation of file transfer service with UDT protocol Liu Zhaofu 1 刘召富,(1989-),男, ...

  7. [C# 网络编程系列]专题十一:实现一个基于FTP协议的程序——文件上传下载器...

    引言: 在这个专题将为大家揭开下FTP这个协议的面纱,其实学习知识和生活中的例子都是很相通的,就拿这个专题来说,要了解FTP协议然后根据FTP协议实现一个文件下载器,就和和追MM是差不多的过程的,相信 ...

  8. Java实现FTP批量大文件上传下载

    用Java实现FTP批量大文件上传下载 <iframe id="I0_1416224567509" style="margin: 0px; padding: 0px ...

  9. 配置ftp服务器实现文件传输,配置ftp服务器实现文件传输

    配置ftp服务器实现文件传输 内容精选 换一换 云堡垒机支持文件传输功能,以及审计传输的文件.Linux主机和Windows主机的文件传输方式有所区别.Linux主机上传/下载文件,可选择Web运维和 ...

最新文章

  1. Loadrunner进行md5加密方法
  2. 手把手教你实现PySpark机器学习项目——回归算法
  3. Yum database disk image is malformed 错误
  4. linux系统清除日志,如何清除Linux系统日志
  5. torch.gather(input, dim, index, *, sparse_grad=False, out=None) → Tensor
  6. POJ 2808 校门外的树
  7. Excel 宏代码实现按相同值分组设置背景颜色
  8. 【AI视野·今日Robot 机器人论文速览 第十三期】Wed, 23 Jun 2021
  9. 5.产品的三种流程图,你都知道吗?
  10. JMeter录制的两种方法
  11. mysql-基本操作
  12. Java程序员集合框架面试题
  13. bios 微星click_微星主板CLICK BIOS II BIOS设置软件下载_微星主板CLICK BIOS II BIOS设置软件官方下载-太平洋下载中心...
  14. 哈理工OJ-2277-喝喝
  15. Endnote自定义文献引用格式
  16. PCI E 阻抗85/100
  17. 付费学习,花钱比意志力靠谱
  18. 2022年必须知道的89 个数据泄露统计
  19. Android WebView简介
  20. 树莓派python界面qt_树莓派QT入门教程——使用Qt开发界面程序控制GPIO

热门文章

  1. 月入3千和3万的职场人,差别就在这4点
  2. taobao.trades.sold.increment.get( 淘宝店铺订单交易数据接口,淘宝店铺订单解密提额接口,淘宝店铺订单解密接口)代码对接教程
  3. python stdout用法_python学习之 sys.stdout和print
  4. hessian java_java序列化之Hessian
  5. Python爬虫:常用的爬虫工具汇总
  6. RNA-seq数据构成原理
  7. 华为鸿蒙如何安装,华为鸿蒙OS发布会解析,这些技术干货你应该知道
  8. Java游戏服务器开发之二--导航帖
  9. efuse 加密文件 linux,开发者分享 | EFuse AES 密钥验证步骤
  10. NetCore使用Dapper查询数据