JAVA中的FtpClient与FTPClient,并实现jsp页面下载ftp服务器上的文件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JAVA中的FtpClient与FTPClient,并实现jsp页面下载ftp服
务器上的文件
这段时间一直在研究Java如何访问Ftp,搞了一段时间了,也有一定的了解。故此记录一下。
ftp和FTP我个人觉得FTP更符合我们程序员的口味,不管是方法命名还是API的详细与否,或者是开发平台的问题,FTP毕竟是Apache的东西,做的就是不错。
其实web开发中一般都会涉及到编码问题,所以web上传下载一定会有中文乱码的问题存在,而FTP对中文的支持比ftp要好多了。
使用ftpClient不需要导入其它jar包,只要你使用java语言开发就行了,而使用FTPClient 需要使用commons-net-1.4.1.jar和jakarta-oro-2.0.8.jar,当然jar版本随便你自己。
话不多说,上代码!
FTP服务器的文件目录结构图:
一、FtpClient
FtpClient是属于JDK的包下面的类,但是jdkapi并没有对此作介绍,在中文支持上面也有一定的限制。
本段代码中的Ftp服务器的IP地址,用户名和密码均通过SystemConfig.properties文档获取
Ftp_client.java
[java]view plain copy
1.package com.iodn.util;
2.
3.import java.io.ByteArrayOutputStream;
4.import java.io.File;
5.import java.io.FileInputStream;
6.import java.io.FileOutputStream;
7.import java.io.IOException;
8.import java.util.ResourceBundle;
9.import .TelnetInputStream;
10.import .TelnetOutputStream;
11.import .ftp.FtpClient;
12.
13.public class Ftp_client {
14.
15.//FTP客户端
16.private FtpClient ftpClient;
17.private ResourceBundle res=null;
18./**
19. * 连接FTP服务器
20. * @param path 指定远程服务器上的路径
21. */
22.public Ftp_client(String path){
23.
24. res = ResourceBundle.getBundle("com.iodn.util.SystemConfig");//
获取配置文件propeties文档中的数据
25.try{
26. ftpClient=new FtpClient(res.getString("Properties.ftpHostIp"));/
/如果不想使用配置文件即可将数据写死(如:192.168.1.10)
27. ftpClient.login(res.getString("Properties.ftpUser"), res.getStri
ng("Properties.ftpPassword"));//Ftp服务器用户名和密码
28. ftpClient.binary();
29. System.out.println("Login Success!");
30.if(path.length()!=0){
31.//把远程系统上的目录切换到参数path所指定的目录(可不用设置,上传下
载删除时加Ftp中的全路径即可)
32. ftpClient.cd(path);
33. }
34. }catch(Exception e){
35. e.printStackTrace();
36. }
37. }
38.
39./**
40. * 上传文件
41. * @param remoteFile
42. * @param localFile
43. */
44.public boolean upload(String remoteFile, String localFile){
45.boolean bool=false;
46. TelnetOutputStream os=null;
47. FileInputStream is=null;
48.try{
49. os=ftpClient.put(remoteFile);
50. is=new FileInputStream(new File(localFile));
51.byte[] b=new byte[1024];
52.int c;
53.while((c=is.read(b))!=-1){
54. os.write(b, 0, c);
55. }
56. bool=true;
57. }catch(Exception e){
58. e.printStackTrace();
59. System.out.println("上传文件失败!请检查系统FTP设置,并确认FTP
服务启动");
60. }finally{
61.if(is!=null){
62.try {
63. is.close();
64. } catch (IOException e) {
65. e.printStackTrace();
66. }
67. }
68.if(os!=null){
69.try {
70. os.close();
71. } catch (IOException e) {
72. e.printStackTrace();