基于FTP协议的文件传输与下载
目录
一、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协议的文件传输与下载相关推荐
- 基于FTP协议实现文件上传与下载
目录 一.FTP简介 二.关于FTP服务器 三.文件上传 分步讲解: 完整实现代码: 四.下载文件 分步讲解: 完整实现代码: 小结 一.FTP简介 FTP(File Transfer Protoco ...
- FTP协议(文件传输协议)
FTP是FileTransferProtocol(文件传输协议)的英文简称,而中文简称为"文传协议".用于Internet上的控制文件的双向传输.同时,它也是一个应用程序(Appl ...
- 教你写一个ftp协议(文件传输协议)
一.FTP协议简介 FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为"文传协议".用于Internet上的控制文件的双向传输.同时,它 ...
- linux tcp文件分包_在Linux下基于TCP协议的文件传输程序.
[设计目的] 通过 Linux C 编程,设计一个基于 TCP/IP 的文件传输系统,实现网络文件的收发 [设计环境] Ubuntu 12.04 [设计方案] ( 1 )文件读写 任意文件都可以二进制 ...
- Qt网络编程小项目-基于Tcp协议的文件传输项目
目录 项目描述 Qt下Tcp服务器端和客户端流程: 具体流程: 客户端: 服务器端: 源码: 服务器端: 服务器头文件: 服务器源文件: 服务器端ui 客户端: 客户端头文件: 客户端源文件: 客户端 ...
- udt编写高性能服务器,基于UDT协议的文件传输服务的设计与实现
The design and implementation of file transfer service with UDT protocol Liu Zhaofu 1 刘召富,(1989-),男, ...
- [C# 网络编程系列]专题十一:实现一个基于FTP协议的程序——文件上传下载器...
引言: 在这个专题将为大家揭开下FTP这个协议的面纱,其实学习知识和生活中的例子都是很相通的,就拿这个专题来说,要了解FTP协议然后根据FTP协议实现一个文件下载器,就和和追MM是差不多的过程的,相信 ...
- Java实现FTP批量大文件上传下载
用Java实现FTP批量大文件上传下载 <iframe id="I0_1416224567509" style="margin: 0px; padding: 0px ...
- 配置ftp服务器实现文件传输,配置ftp服务器实现文件传输
配置ftp服务器实现文件传输 内容精选 换一换 云堡垒机支持文件传输功能,以及审计传输的文件.Linux主机和Windows主机的文件传输方式有所区别.Linux主机上传/下载文件,可选择Web运维和 ...
最新文章
- Loadrunner进行md5加密方法
- 手把手教你实现PySpark机器学习项目——回归算法
- Yum database disk image is malformed 错误
- linux系统清除日志,如何清除Linux系统日志
- torch.gather(input, dim, index, *, sparse_grad=False, out=None) → Tensor
- POJ 2808 校门外的树
- Excel 宏代码实现按相同值分组设置背景颜色
- 【AI视野·今日Robot 机器人论文速览 第十三期】Wed, 23 Jun 2021
- 5.产品的三种流程图,你都知道吗?
- JMeter录制的两种方法
- mysql-基本操作
- Java程序员集合框架面试题
- bios 微星click_微星主板CLICK BIOS II BIOS设置软件下载_微星主板CLICK BIOS II BIOS设置软件官方下载-太平洋下载中心...
- 哈理工OJ-2277-喝喝
- Endnote自定义文献引用格式
- PCI E 阻抗85/100
- 付费学习,花钱比意志力靠谱
- 2022年必须知道的89 个数据泄露统计
- Android WebView简介
- 树莓派python界面qt_树莓派QT入门教程——使用Qt开发界面程序控制GPIO
热门文章
- 月入3千和3万的职场人,差别就在这4点
- taobao.trades.sold.increment.get( 淘宝店铺订单交易数据接口,淘宝店铺订单解密提额接口,淘宝店铺订单解密接口)代码对接教程
- python stdout用法_python学习之 sys.stdout和print
- hessian java_java序列化之Hessian
- Python爬虫:常用的爬虫工具汇总
- RNA-seq数据构成原理
- 华为鸿蒙如何安装,华为鸿蒙OS发布会解析,这些技术干货你应该知道
- Java游戏服务器开发之二--导航帖
- efuse 加密文件 linux,开发者分享 | EFuse AES 密钥验证步骤
- NetCore使用Dapper查询数据