您的位置:首页 > 编程语言 > Java开发

java的ftp上传文件程序(FtpClient类)

2007-07-23 19:04 429 查看
下载源代码:http://dl2.csdn.net/down4/20070723/23190243941.rar

想要通过ftp自动上传文件到ftp服务器,一般是通过ftp命令脚本来实现的。通过open/user/put/get/bye等一系列命令,顺序执行即可将传输文件,而不需要人工介入(即命令交互式操作)。在linux上的shell脚本执行没有问题,在笔者的win2000 server版上,使用put命令总是报错,说请指定用PASV或PORT模式。使用quote pasv能正常执行,但再次执行put后,很久没有响应,并最后报“425:Not able to open/establish data connection”的错误。在另外一台winxp系统上,却能够使用put上传文件,百思不得其解。

服务器端是redhat linux,ftp服务器为vsftp,参数设置为支持port模式。google了一下,有一种说法是dos终端下的ftp不支持PASV模式。试了各种配置,都不奏效。后来没有办法,只好用java写了个小程序进行文件上传。

使用sun.net.ftp.FtpClient(rt.jar)包,调用openServer(), login(), cd(), binary(), put()等一系列方法,可以上传文件。为了增强灵活性和通用性,写了一个xml格式的配置文件,基本算是间接地解决了原来的问题。另外,通过log4j,将上传历史记录到日志中。使用几天,程序还比较稳定。
<ftp-config>
<connection>
<property name="serverip" value="10.10.10.90"/>
<property name="username" value="root"/>
<property name="password" value="jsweb123"/>
</connection>
<task>
<upload serverPath="/opt/bea/user_projects/ECSNDomain/applications/DefaultWebApp/jswz/jjcp"
localPath="D:/web_nav_htm/" fileName="jsnav1.htm"/>
<upload serverPath="/opt/bea/user_projects/ECSNDomain/applications/DefaultWebApp/jswz/jjcp"
localPath="D:/web_nav_htm/" fileName="jsnav2.htm"/>
</task>
</ftp-config>

附注:
运行需要的包:
ojdbc14.jar
jsp-api.jar
dom4j-1.6.1.jar
log4j-1.2.14.jar
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: