列宿乃施于上榮兮 日月才經于柍桭

          ………… 白駒過隙 歲月如斯 夢縈回繞 心靈之聲
          posts - 57, comments - 8, trackbacks - 0, articles - 41
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          Java實現FTP傳輸文件(一)

          Posted on 2007-05-18 19:22 默認為零 閱讀(1122) 評論(0)  編輯  收藏 所屬分類: 技術

            基于Java的ftp傳輸文件方式有2種,一種是利用Runtime.getRuntime().exec()執行操作系統的ftp命令,達到ftp的目的,另一種是利用Apache commons-ftp工具包實現ftp的功能,不同的方法,可以達到相同的效果。這里簡單介紹下用Java Runtime調用執行ftp的例子。

            下面是最近正巧做的利用Runtime執行操作系統的批處理腳本執行ftp文件傳輸功能的例子,程序生成腳本如下:

            Windows腳本

          open 目標IP
          用戶名
          密碼
          cd 目標路徑
          asc
          prompt
          put 本地文件(完整路徑)
          bye


            Unix腳本

          ftp -n -i 目標IP <<!EOF
          user 用戶名 密碼
          cd 目標路徑
          lcd 本地文件路徑
          asc
          prompt
          put 本地文件
          bye
          !EOF

            這里傳送的是文本文件,所以采用asc模式傳輸。然后Java Runtime執行命令 [Runtime.getRuntime().exec(cmd)] 如下:

            Windows命令

          ftp -s:腳本文件(完整路徑)


            Unix命令

          sh 腳本文件(完整路徑)


            以上如果都使用的是用戶當前工作目錄user.dir作為焦點目錄,則其實都可以省去(完整路徑)的定位。可是在服務器上用戶權限有所控制,user.dir無法提供當前用戶寫入文件,所以只能麻煩一點另找目錄定位路徑。好了,其實也一樣。

            這樣,ftp上傳功能就完成了,當然,這里的前提是這個腳本生成不能有誤。如果輸入的參數有錯誤,腳本執行過程中返回的錯誤Runtime是沒有捕獲的。所以,如果需要知道ftp過程中的每一步是否出錯,出的什么錯,最好使用Apache的commons-ftp包處理(使用FTPClient),網路上有很多相關的例子,可以找來看看。

          主站蜘蛛池模板: 喜德县| 修文县| 双流县| 镇巴县| 桃江县| 绵阳市| 梧州市| 新化县| 同德县| 昌江| 巩留县| 武邑县| 皋兰县| 庆城县| 莒南县| 苏州市| 酒泉市| 华安县| 镇原县| 桦南县| 武山县| 泗洪县| 九龙县| 育儿| 浦东新区| 青川县| 杂多县| 彩票| 唐山市| 五台县| 光泽县| 莆田市| 全椒县| 连江县| 通河县| 旅游| 于田县| 衡南县| 恩平市| 舞钢市| 阿尔山市|