没有合适的资源?快使用搜索试试~ 我知道了~
首页用Java实现FTP批量大文件上传下载.doc
用Java实现FTP批量大文件上传下载.doc
4星 · 超过85%的资源 需积分: 21 110 下载量 5 浏览量
更新于2023-03-03
评论
收藏 1.99MB DOC 举报
用Java实现FTP批量大文件上传下载.doc 用Java实现FTP批量大文件上传下载.doc 用Java实现FTP批量大文件上传下载.doc
资源详情
资源评论
资源推荐
用 Java 实现 FTP 批量大文件上传下载(一)
本文介绍了在 中,如何使用 现有的可用的库来编写 客户端
代码,并开发成 控件,做成基于 的批量、大文件的上传下载控件。
文章在比较了一系列 客户库的基础上,就其中一个比较通用且功能较强的
类库,对一些比较常见的功能如进度条、断点续传、内外网的映射、在
中回调 函数等问题进行详细的阐述及代码实现,希望通过
此文起到一个抛砖引玉的作用。
一、ddddddd 引子
笔者在实施一个项目过程中出现了一种基于 的文件上传下载需求。在
全省(或全国)各地的用户,需要将一些文件上传至某中心的文件服务器上。
这些文件是用于一些大型的工程建设,可能涉及到上千万甚至上亿的建设工程。
文件具有三个鲜明的特征:一是文件大,可能达到 ;二是文件数量多,有
可能 个左右;三是数据安全性方面要求数字签名及数据加密。
首先考虑到是基于 的传输方式。但笔者通过比较很快发现满足上面
的需求:
:用 协议上传,似乎更适合 编程的方便性;上传小于 文
件速度要比用 协议上传文件略快。但对于批量及大文件的传输可能无能为
力。当然,它也有它的优势,如不像 那样,必须在服务器端启动一个
服务。
:用 协议上传文件大于 的文件速度比 快。文件越大,上传
的速度就比 上传的速度快数倍。而且用 编写程序; 比 方
便。
笔者曾经使用 也写过 控件来进行批量文件的上传下载,其功
能也很强大。只是由于没有对 文件或 进行专门的数字签名,因此需
要进行客户端烦琐的设置,如设置安全站点、降低客户端的安全级别等等,因
而放弃了些方案。
同时考虑到在需在客户端对文件进行数字签名及数据加密,决定采用
的方式实现。。文件上传之前,在客户端可以获取本地 !"#$ 密钥
信息,完成对上传文件的加密和签名处理。虽然采用 要求在客户端安
装 %# 运行时环境,给客户端的管理及使用带来一度的不方便性,但是相对起
如此大量的文件及文件的安全性,这也许已经算是比较小的代价了。
总结一下运行的环境为:
服务器端:!,专业的 服务器端程序,网上有现成的软件下
载,当然读者也可能自己写一个服务器端的 文件接收程序来进行解释。如
果没有特殊要求或功能的话,! 应该可以满足我们一般上传下载的需求了;
客户端:&,当年让 大火了一把的号称与微软的
相提并论的技术当然,现在 出了 ,是不是 的替代品呢?
应用环境:'(( 网,最终目的。
二、ddddddd Java FTP 客户端库的选择
让我们设想这样一个情形--我们想写一个纯 的从一个远程计算机上
运行的 服务器上传下载文件的应用程序;我们还希望能够得到那些供下载
的远程文件的基本文件信息,如文件名、数据或者文件大小等。
尽管从头开始写一个 协议处理程序是可能的,并且也许很有趣,但这
项工作也是困难、漫长并且存在着潜在的危险。因为我们不愿意亲自花时间、
精力、或者金钱去写这样的一个处理程序,所以我们转而采用那些已经存在的
可重用的组件。并且很多的库存在于网上。
找一个优秀的适合我们需要的 &&客户端库并不像看起来那么简单。
相反这是一项非常痛苦复杂的工作。首先找到一个 客户端库需要一些时间,
其次,在我们找到所有的存在的库后,我们该选哪一个呢?每个库都适合不同
的需求。这些库在性能上是不等价的,并且它们的设计上有着根本上的差别。
每个类库都各具特点并使用不同的术语来描述它们。因而,评价和比较 客
户端库是一件困难的事情。
使用可重用组件是一种值得提倡的方法,但是在这种情况下,刚开始往往
是令人气馁的。后来或许有点惭愧:在选择了一个好的 库后,其后的工作
就非常简单了,按简单的规则来就行了。目前,已经有很多公开免费的 客
户端类库,如 )*、 等,还有很多其他的 (。如下表所示,
表中未能全部列出,如读者有更好的客户端 类库,请进行进一步的补充。
客户端类库名 备注
)* +,,--./,0),
)*-
( .*-()1-(--(
... .*-*-(.2--...-
...
.((.(3 (-)--(-.((.(
( ./-4-.**.()-(--
(
(3 )4.-(-(
(3 )5(-(--(3
3 .*-6)--3
7-14--
( ./-/.5)-.--(
在本文中,笔者采用是 。这个是个开源的且功能十分强大的客户端
类库。笔者很喜欢,同时也向各位读者推荐一下。算了免费为它做一个广
告。
三、ddddddd 基本功能
1、 登陆
采用 进行文件传输,其实本质上还是采用 -(-).2 进行通信。
以下代码只是类 (-)--(-.((.( 其中一个 ./( 方法。当然在
下面的代码,为了节省版面,以及将一些原理阐述清楚,笔者将一些没必要的
代码去掉了,如日志等代码。完整的代码请参考 的源代码或是笔者所以的
示例源代码,后面的代码示例也同理:
53(3./(8(/35)(*93(/3)).1:
3333;
333333334)-5)(*3<35)(*=
333333334)-)).13<3)).1=
33333333(3)5)3<3> ?'@A "=
33333333.(3<3(3.((.(84.)93.:=
333333338.(-)48::
33333333;
333333333333(3<3.(-/%18:=
3333333333338/>(8 ''#:3<<3(5:,,A#%'#A%#B$:3<<3(5:
333333333333;
3333333333333333.23<3)=3333333333333333
3333333333333333)5)3<3 >'@#=
333333333333C333
3333333333338D/>(8./(2:-))48 ''#::,,EA> ??#BA'@::
333333333333;333333333333333
33333333333333338)5))8 ''#::,,EA> ??#BA'@::
3333333333333333;33333333333333333
3333333333333333C
3333333333333333)
3333333333333333;
33333333333333333333.23<3)=
33333333333333333333)5)3<3% @?A> ?'@AB=
3333333333333333C
333333333333C
33333333C
33333333)
33333333;
3333333333338*)/:
333333333333;
3333333333333333>./-15/8F3(.3DF:=
3333333333333333.23<3)=
3333333333333333)5)3<3?#@#%'A'>#B=
333333333333C
33333333C
333333338.2:
33333333;
333333333333.((13<35=
333333333333)G)*8:=
333333333333(G8:=
333333333333
333333333333(/HI31(/)3<3(3(/HJI=
3333333333338/ )G8:-(1K 8F ,F:3L<3:
333333333333;
剩余46页未读,继续阅读
lxjt451096911
- 粉丝: 2
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- ExcelVBA中的Range和Cells用法说明.pdf
- 基于单片机的电梯控制模型设计.doc
- 主成分分析和因子分析.pptx
- 共享笔记服务系统论文.doc
- 基于数据治理体系的数据中台实践分享.pptx
- 变压器的铭牌和额定值.pptx
- 计算机网络课程设计报告--用winsock设计Ping应用程序.doc
- 高电压技术课件:第03章 液体和固体介质的电气特性.pdf
- Oracle商务智能精华介绍.pptx
- 基于单片机的输液滴速控制系统设计文档.doc
- dw考试题 5套.pdf
- 学生档案管理系统详细设计说明书.doc
- 操作系统PPT课件.pptx
- 智慧路边停车管理系统方案.pptx
- 【企业内控系列】企业内部控制之人力资源管理控制(17页).doc
- 温度传感器分类与特点.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论5