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

来源:互联网 发布:php去掉字符串空格 编辑:程序博客网 时间:2024/05/19 12:39

下载源代码: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

原创粉丝点击