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

          ………… 白駒過隙 歲月如斯 夢縈回繞 心靈之聲
          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),網路上有很多相關的例子,可以找來看看。

          主站蜘蛛池模板: 阳西县| 四子王旗| 梓潼县| 宿松县| 林口县| 南安市| 策勒县| 阿城市| 金门县| 永康市| 大足县| 三原县| 兴国县| 五河县| 那坡县| 宁城县| 安岳县| 吕梁市| 谢通门县| 青浦区| 营山县| 喀喇| 汾西县| 巴林右旗| 武定县| 乌拉特前旗| 新宁县| 大理市| 峨眉山市| 应用必备| 普陀区| 上栗县| 三亚市| 邛崃市| 阳江市| 密山市| 门源| 钦州市| 舞钢市| 嵊泗县| 武强县|