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

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

          Java實現FTP傳輸文件(一)

          Posted on 2007-05-18 19:22 默認為零 閱讀(1130) 評論(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),網路上有很多相關的例子,可以找來看看。

          主站蜘蛛池模板: 长兴县| 泾阳县| 武宣县| 屏东市| 白朗县| 桦甸市| 汨罗市| 札达县| 台湾省| 扎赉特旗| 新乡市| 遂宁市| 崇信县| 托里县| 嘉义县| 会东县| 锦屏县| 大足县| 马公市| 宁强县| 平舆县| 宿松县| 永康市| 正宁县| 师宗县| 鹿邑县| 阿城市| 汉源县| 阿尔山市| 南充市| 育儿| 建德市| 贵阳市| 托克逊县| 宿松县| 长泰县| 桂东县| 资阳市| 江安县| 冷水江市| 安西县|