首先是搭建 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); } } } |
善于将复杂问题简单化