最近在做个ftp上传、下载的项目,用到的包是sun.net.ftp.FtpClient。本地开发测试一切正常,放到服
务器测试,程序开始 。无奈之下,只能逐步输出日志,查找原因,现做个小结。
本地的开发环境是win7+jdk1.5,另本地搭建一个ftp服务器,软件使用的是serv_U。
务器测试,程序开始 。无奈之下,只能逐步输出日志,查找原因,现做个小结。
本地的开发环境是win7+jdk1.5,另本地搭建一个ftp服务器,软件使用的是serv_U。
服务器上的环境是linux+jdk1.5.
经过分析发现,linux环境与win环境的ftp操作有以下差别:
1、ftp的根路径不同
加入:ftp用户名:user,密码:11111
根目录:win:c://upload;linux:/data/upload
子目录:win:c://upload/abc;linux:/data/upload/abc
win系统中,以ftp的用户名和密码登陆后,可直接进入cd(/abc),即可进入到abc目录
但是,在linux系统中,以ftp的用户名和密码登陆后,需要cd完整的路径才可以进入目录,即:cd(/data/upload/abc),不可使用cd(/abc)。
所以,要注意linux系统的文件操作时要完整的绝对路径,而不能使用相对路径。
总结的地方2:java ftpUtil类,需要引用第三方的jar包
1.it.sauronsoftware.ftp4j.FTPClient
2.org.apache.commons.net.ftp.FTPClient
我用的是第一个。