博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

ftp服务的搭建及调用

Posted on 2015-11-12 10:32  和风细雨汪汪  阅读(369)  评论(0编辑  收藏  举报

首先是搭建 ftp server:

下载:http://archive.apache.org/dist/mina/ftpserver/1.0.6/

下载到本地, 如下图:

解压后到D盘 如图:

步聚:

1.修改连接到ftp服务器上的用户配置文件

D:\java\ftp\apache-ftpserver-1.0.6\res\conf\users.properties

2. 修改 ftpd-typical.xml 文件

 

解释说明:

《1》
  max-logins:允许同时登录ftp的用户数;
  anon-enabled:是否运行匿名登录;
  max-anon-logins:允许同时登录的最大匿名用户数;
  max-login-failures:允许登录失败的次数,超过次数则关闭连接;
  ogin-failure-delay:一次登录失败后,重新发起登录的间隔,单位毫秒;

《2》encrypt-passwords="true"  ---- 定义用户密码为明文

3.以前两步文件配置后,即可在DOS窗口中启动ftp服务器了。

可写成一个批处理文件,点击即可启动ftpserver文件

双击run_ftp文件即可。

此时打开一些ftp client,来访问此搭建的ftp服务器

至此,搭建ftp服务器成功。

 

 java 实现FTP服务器文件的上传和下载

利用Apache commons-net 实现;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
package com.xwolf.driver.util;
 
 
import com.xwolf.driver.exception.RunException;
import org.apache.commons.net.ftp.FTPClient;
 
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.nio.charset.Charset;
 
/**
 * Created by Administrator on 2015/9/18.
 */
public class FtpUtil {
    //用户名
    private static final  String username ="root";
    //密码
    private static final  String pwd ="root1234";
    //主机
    private static  final String host ="127.0.0.1";
    //端口
    private static final  int port =21;
  /*
  *上传文件到ftp
  * */
    public static  void upload(FTPClient ftpClient) throws RunException {
 
        File file = new File("C:\\Users\\Administrator\\Desktop\\document\\派单OSS报文.xml");
        try {
            FileInputStream fis = new FileInputStream(file);
            //设置FTP文件目录
            ftpClient.changeWorkingDirectory("/weblogic/upload");
            //缓冲区
            ftpClient.setBufferSize(1024);
            //字符集 貌似用途不大
            ftpClient.setControlEncoding("GBK");
            ftpClient.setCharset(Charset.forName("GBK"));
            //文件类型(二进制文件)
            ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
            //保存文件到FTP服务器上 防止中文乱码
            ftpClient.storeFile(new String("派单OSS报文_0921.xml".getBytes("GBK"),"iso-8859-1"),fis);
        catch (Exception e) {
            throw new RunException("文件上传ftp服务器异常",e);
        }
    }
 
    /**
     * 下载文件
     * @param ftpClient
     */
    public static void download(FTPClient ftpClient) throws RunException {
        try {
            //保存的文件的名称
            FileOutputStream ous = new FileOutputStream(new File("E:\\派单报文.xml"));
            ftpClient.setBufferSize(1024);
            //设置文件类型(二进制)
            ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
            //服务器上文件名称
            ftpClient.retrieveFile("派单OSS报文_0921.xml",ous);
        catch (Exception e) {
            throw new RunException("文件上传ftp服务器异常",e);
        }
    }
    public static void main(String[] args) throws RunException {
 
        FTPClient ftpClient=new FTPClient();
 
        try {
            //连接FTP
            ftpClient.connect(host,port);
           //是否登录成功
           boolean login = ftpClient.login(username,pwd);
        if(login){
            download(ftpClient);
         }
 
        catch (Exception e) {
            throw new RunException("ftp服务器连接异常",e);
        }
 
    }
 
}