java上傳FTP

package com.fangdi.landaudit.process.util;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.StringTokenizer;

import sun.net.TelnetOutputStream;
import sun.net.ftp.FtpClient;

public class T {

 FtpClient ftpClient;
 public static SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
 public static String strTime = sdf.format(new Date());
 // server:服務器名字
 // user:用戶名
 // password:密碼
 // path:服務器上的路徑
 public void connectServer(String ip, int port, String user,
   String password, String path) {
  try {
   ftpClient = new FtpClient();
   ftpClient.openServer(ip, port);
   ftpClient.login(user, password);
   System.out.println("login success!");
   if (path.length() != 0)
   createDir(path);
   ftpClient.cd(path);
   ftpClient.binary();
  } catch (IOException ex) {
   System.out.println("not login");
   System.out.println(ex);
  }
 }

 public void closeConnect() {
  try {
   ftpClient.closeServer();
   System.out.println("disconnect success");
  } catch (IOException ex) {
   System.out.println("not disconnect");
   System.out.println(ex);
  }
 }

 public void upload(InputStream is,String remotefilename) {
  try {
   TelnetOutputStream os = ftpClient.put(remotefilename);
   byte[] bytes = new byte[1024];
   int c;
   while ((c = is.read(bytes)) != -1) {
    os.write(bytes, 0, c);
   }
   System.out.println("upload success");
   is.close();
   os.close();
  } catch (IOException ex) {
   System.out.println("not upload");
   System.out.println(ex);
  }
 }

 public static void main(String agrs[]) {
  String filePath = "C:\\syoa\\wdzx97R.dot";
  String fileName = "wdzx97R.dot";
  FileInputStream is = null;
  T fu = new T();
  fu.connectServer("192.168.7.167", 21, "xxgk_sy", "xxgk_sy",
      "/SY/"+strTime);
   File file = new File(filePath);
   try {
    is = new FileInputStream(file);
   } catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   fu.upload(is, fileName);
  fu.closeConnect();
 }
 
 private boolean createDir(String dir){ 
     try{ 
      ftpClient.ascii(); 
      StringTokenizer s = new StringTokenizer(dir, "/"); //sign  
      s.countTokens(); 
      String pathName = ftpClient.pwd(); 
      while(s.hasMoreElements()){ 
       pathName = pathName + "/" + (String) s.nextElement(); 
       try { 
        ftpClient.sendServer("MKD " + pathName + "\r\n"); 
       } catch (Exception e) { 
        e = null; 
        return false; 
       } 
       ftpClient.readServerResponse(); 
      } 
      ftpClient.binary(); 
      return true; 
     }catch (IOException e1){ 
      e1.printStackTrace(); 
      return false; 
     } 
  } 
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章