JAVA FTP 업로드 다운로드 실현 (sun. net. ftp. FtpClient)

51414 단어
package com.why.ftp;      
     
import java.io.DataInputStream;      
import java.io.File;      
import java.io.FileInputStream;      
import java.io.FileOutputStream;      
import java.io.IOException;      
import java.io.OutputStream;      
import java.util.ArrayList;      
import java.util.List;      
import java.util.StringTokenizer;      
import sun.net.TelnetInputStream;      
import sun.net.TelnetOutputStream;      
import sun.net.ftp.FtpClient;      
     
/**    
 * ftp  ,      
 * @author why 2009-07-30    
 *    
 */     
public class FtpUtil {      
     
    private String ip = "";      
     
    private String username = "";      
     
    private String password = "";      
     
    private int port = -1;      
     
    private String path = "";      
     
    FtpClient ftpClient = null;      
     
    OutputStream os = null;      
     
    FileInputStream is = null;      
     
    public FtpUtil(String serverIP, String username, String password) {      
        this.ip = serverIP;      
        this.username = username;      
        this.password = password;      
    }      
          
    public FtpUtil(String serverIP, int port, String username, String password) {      
        this.ip = serverIP;      
        this.username = username;      
        this.password = password;      
        this.port = port;      
    }      
     
    /**    
     *   ftp       
     *     
     * @throws IOException    
     */     
    public boolean connectServer(){      
        ftpClient = new FtpClient();      
        try {      
            if(this.port != -1){      
                    ftpClient.openServer(this.ip,this.port);      
            }else{      
                ftpClient.openServer(this.ip);      
            }      
            ftpClient.login(this.username, this.password);      
            if (this.path.length() != 0){      
                ftpClient.cd(this.path);// path ftp                           
            }      
            ftpClient.binary();//  2    、        
            System.out.println("    \"" + ftpClient.pwd() + "\"  ");      
            return true;      
        }catch (IOException e){      
            e.printStackTrace();      
            return false;      
        }      
    }      
          
    /**    
     *    ftp         
     *     
     * @throws IOException    
     */     
    public boolean closeServer(){      
        try{      
            if (is != null) {      
                is.close();      
            }      
            if (os != null) {      
                os.close();      
            }      
            if (ftpClient != null) {      
                ftpClient.closeServer();      
            }      
            System.out.println("       ");      
            return true;      
        }catch(IOException e){      
            e.printStackTrace();      
            return false;      
        }      
    }      
          
    /**    
     *                    
     * @param dir    
     * @return    
     */     
     private boolean isDirExist(String dir){      
         String pwd = "";      
         try {      
             pwd = ftpClient.pwd();      
             ftpClient.cd(dir);      
             ftpClient.cd(pwd);      
         }catch(Exception e){      
             return false;      
         }      
         return true;       
     }      
          
    /**    
     *                
     * @param dir    
     * @return    
     * @throws Exception    
     */     
     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
"); } catch (Exception e) { e = null; return false; } ftpClient.readServerResponse(); } ftpClient.binary(); return true; }catch (IOException e1){ e1.printStackTrace(); return false; } } /** * ftp * filename , * * @param filename ( ) * @return * @throws Exception */ public boolean upload(String filename){ String newname = ""; if(filename.indexOf("/") > -1){ newname = filename.substring(filename.lastIndexOf("/") + 1); }else{ newname = filename; } return upload(filename, newname); } /** * ftp * newName , * * @param fileName ( ) * @param newName ( ) * @return */ public boolean upload(String fileName, String newName){ try{ String savefilename = new String(fileName.getBytes("ISO-8859-1"), "GBK"); File file_in = new File(savefilename);// if(!file_in.exists()){ throw new Exception(" [" + file_in.getName() + "] !"); } if(file_in.isDirectory()){ upload(file_in.getPath(),newName,ftpClient.pwd()); }else{ uploadFile(file_in.getPath(),newName); } if(is != null){ is.close(); } if(os != null){ os.close(); } return true; }catch(Exception e){ e.printStackTrace(); System.err.println("Exception e in Ftp upload(): " + e.toString()); return false; }finally{ try{ if(is != null){ is.close(); } if(os != null){ os.close(); } }catch(IOException e){ e.printStackTrace(); } } } /** * * @param fileName * @param newName * @param path * @throws Exception */ private void upload(String fileName, String newName,String path) throws Exception{ String savefilename = new String(fileName.getBytes("ISO-8859-1"), "GBK"); File file_in = new File(savefilename);// if(!file_in.exists()){ throw new Exception(" [" + file_in.getName() + "] !"); } if(file_in.isDirectory()){ if(!isDirExist(newName)){ createDir(newName); } ftpClient.cd(newName); File sourceFile[] = file_in.listFiles(); for(int i = 0; i < sourceFile.length; i++){ if(!sourceFile[i].exists()){ continue; } if(sourceFile[i].isDirectory()){ this.upload(sourceFile[i].getPath(),sourceFile[i].getName(),path+"/"+newName); }else{ this.uploadFile(sourceFile[i].getPath(),sourceFile[i].getName()); } } }else{ uploadFile(file_in.getPath(),newName); } ftpClient.cd(path); } /** * upload * * @param filename * @param newname * @return -1 >=0 , * @throws Exception */ public long uploadFile(String filename, String newname) throws Exception{ long result = 0; TelnetOutputStream os = null; FileInputStream is = null; try { java.io.File file_in = new java.io.File(filename); if(!file_in.exists()) return -1; os = ftpClient.put(newname); result = file_in.length(); is = new FileInputStream(file_in); byte[] bytes = new byte[1024]; int c; while((c = is.read(bytes)) != -1){ os.write(bytes, 0, c); } }finally{ if(is != null){ is.close(); } if(os != null){ os.close(); } } return result; } /** * ftp * * @param filename * @param newfilename * @return * @throws Exception */ public long downloadFile(String filename, String newfilename){ long result = 0; TelnetInputStream is = null; FileOutputStream os = null; try{ is = ftpClient.get(filename); java.io.File outfile = new java.io.File(newfilename); os = new FileOutputStream(outfile); byte[] bytes = new byte[1024]; int c; while ((c = is.read(bytes)) != -1) { os.write(bytes, 0, c); result = result + c; } }catch (IOException e){ e.printStackTrace(); }finally{ try { if(is != null){ is.close(); } if(os != null){ os.close(); } } catch (IOException e) { e.printStackTrace(); } } return result; } /** * * * @param path * @return */ public List getFileList(String path){ List list = new ArrayList(); DataInputStream dis; try { dis = new DataInputStream(ftpClient.nameList(this.path + path)); String filename = ""; while((filename = dis.readLine()) != null){ list.add(filename); } } catch (IOException e) { e.printStackTrace(); } return list; } public static void main(String[] args){ FtpUtil ftp = new FtpUtil("133.224.202.2","tstbill","tstbill"); ftp.connectServer(); boolean result = ftp.upload("C:/test_why", "test_why/test"); System.out.println(result?" !":" !"); List list = ftp.getFileList("test_why/test"); for(int i=0;i<list.size();i++){ String name = list.get(i).toString(); System.out.println(name); } ftp.closeServer(); /** FTP USER PORT RETR ALLO DELE SITE XMKD CDUP FEAT PASS PASV STOR REST CWD STAT RMD XCUP OPTS ACCT TYPE APPE RNFR XCWD HELP XRMD STOU AUTH REIN STRU SMNT RNTO LIST NOOP PWD SIZE PBSZ QUIT MODE SYST ABOR NLST MKD XPWD MDTM PROT , sendServer ( FTP ) , FTP \r
ftpclient.sendServer("XMKD /test/bb\r
"); // FTP ftpclient.readServerResponse sendServer nameList("/test") XMKD , XRMD DELE */ } } FtpClient : sun.net.ftp.FtpClient., FTP 。 , FTP , , , 。FtpClient FTP ,FtpClient " " 。 :   public static boolean useFtpProxy    FTP , , , TRUE, 。   public static String ftpProxyHost    useFtpProxy TRUE , 。   public static int ftpProxyPort    useFtpProxy TRUE , 。   FtpClient , :   1、public FtpClient(String hostname,int port)     FTP 。   2、public FtpClient(String hostname)    FTP , 。   3、FtpClient()    FtpClient , FTP 。 ,FTP openServer 。    FtpClient, FTP 。 ftpClient FTP 。   public void openServer(String hostname)    FTP , 。   public void openServer(String host,int port)    、 FTP 。    , FTP 。 。   public void login(String username,String password)    username password FTP 。 Intemet , FTP anonymous, 。    FtpClient 。   public void cd(String remoteDirectory): remoteDirectory 。   public void cdUp(): 。   public String pwd(): 。   public void binary(): 。   public void ascii(): ASCII 。   public void rename(String string,String string1): 。    , FtpClient 。 、 。 。   public TelnetInputStream list()    。   public TelnetInputStream get(String filename)    filename, TelnetInputStream 。   public TelnetOutputStream put(String filename)    , filename

 
 
sun. net. ftp. FtpClient 를 사용 하여 업로드 기능 개발 을 진행 하 며 jdk 1.7 에 서 는 문제 해결 이 적용 되 지 않 습 니 다.
자바 업로드
2013 - 07 - 14 19: 05 댓 글 읽 기
이 글 은 이미 다음 과 같이 수록 되 었 다.
 
저작권 성명: 본 고 는 블 로 거들 이 창작 한 글 로 블 로 거들 의 허락 없 이 전재 할 수 없다.
이전 프로젝트 에 서 는 sun. net. ftp. FtpClient 같은 파일 을 업로드 하 는 기능 을 개 발 했 습 니 다.
서버 에 연결 하 는 코드 는 다음 과 같 습 니 다.
public static FtpClient ftpClient = null;
 ftpClient = new FtpClient(); ftpClient.openServer(server);  ftpClient.login(user, password);
이전에 이 기능 은 jdk 1.6 을 바탕 으로 개발 되 었 다.모든 것 을 정상적으로 사용 하 다.
 
그러나 고객 의 환경 에 jdk 1.7 환경 이 있 기 때문에 직접 배치 한 결과 파일 업로드 에 실 패 했 고 다음 과 같은 오 류 를 보고 합 니 다.
cannont instantiate the type FtpClient
조사 결과
1) sun. net. ftp. FtpClient 와 같은 종 류 는 jdk 의 도움말 문서 에 구체 적 인 설명 이 없 으 며 외부 에 공개 되 지 않 았 다.그리고 이 종 류 는 jdk 의 rt. jar 에서 이 루어 졌 다.
2) jdk 1.7 에서 구조 함수 FtpClient () 가 private 형식 으로 정의 되 어 new 가 불가능 합 니 다.jdk 1.7 에서 FtpClient. create (ip) 방법 으로 바 뀌 었 습 니 다.
그리고 다른 방법 도 거의 고 쳤 다.
예 를 들 어 ftpClient. openServer (server);  ftpClient.login(user, password);
ftpClient. login (user, null, password);   
  ftpClient.binary();  --->  ftpClient.setBinaryType();   
ftpClient.put(remotefilename);--->ftpClient.putFileStream(remotefilename, true);   
기다리다
 
만약 그렇다면 이 문 제 를 해결 하 는 데 는 두 가지 방법 이 있다.
1. 이 업로드 기능 을 다시 쓰 지만 1.6 버 전 은 어떻게 할 까요? jdk 버 전에 따라 분리 처리 해 야 할 수도 있 습 니 다.
 
2. 기 존 서버 에 1.6 환경 을 구축 한 다음 tomcat 가 시 작 될 때 1.6 jdk 를 불 러 옵 니 다.
이것 은 Liux 나 windows 에서 매우 편리 하 다.윈도 우즈 에서 tomcat 가 서비스 형식 으로 시작 되면 관련 자바 가상 기기 원본 을 직접 수정 하면 됩 니 다.
 
 
 
1.package com.boonya.upload.util.simple;   
2.  
3.import java.io.File;   
4.import java.io.FileInputStream;   
5.import java.io.FileOutputStream;   
6.import java.io.IOException;   
7.import java.net.InetSocketAddress;   
8.import sun.net.TelnetInputStream;   
9.import sun.net.TelnetOutputStream;   
10.import sun.net.ftp.FtpClient;   
11.import sun.net.ftp.FtpProtocolException;   
12./**  
13. * Java   API FTP     
14. * @Jdk:version 1.7  
15. * @Title:Ftp.java  
16. * @author: boonya  
17. * @notice:          ,         
18. */  
19.public class FtpJdk   
20.{   
21.    /**  
22.     *   
23.     *        
24.     */  
25.    private String localfilename;   
26.    /**  
27.     *   
28.     *        
29.     */  
30.    private String remotefilename;   
31.    /**  
32.     *   
33.     * FTP     
34.     */  
35.    private FtpClient ftpClient;   
36.  
37.    /**  
38.     *        
39.     *   
40.     * @param ip  
41.     *               IP  
42.     * @param port  
43.     *                   
44.     * @param user  
45.     *                 
46.     * @param password  
47.     *                
48.     * @param path  
49.     *                   
50.     * @throws FtpProtocolException  
51.     *   
52.     */  
53.    public void connectServer(String ip, int port, String user, String password, String path) throws FtpProtocolException   
54.    {   
55.        try  
56.        {   
57.            /* ******          ****** */  
58.            //         
59.            /*  
60.             * ftpClient =FtpClient.create();  
61.             * ftpClient.connect(new InetSocketAddress(ip, port));  
62.             */  
63.            //         
64.            ftpClient = FtpClient.create(ip);   
65.            ftpClient.login(user, null, password);   
66.            //    2       
67.            ftpClient.setBinaryType();   
68.            System.out.println("login success!");   
69.  
70.            if (path.length() != 0)   
71.            {   
72.                //               path         
73.                ftpClient.changeDirectory(path);   
74.            }   
75.            ftpClient.setBinaryType();   
76.        } catch (IOException ex)   
77.        {   
78.            ex.printStackTrace();   
79.            throw new RuntimeException(ex);   
80.        }   
81.  
82.    }   
83.  
84.    /**  
85.     *       
86.     *   
87.     */  
88.  
89.    public void closeConnect()   
90.    {   
91.        try  
92.        {   
93.            ftpClient.close();   
94.            System.out.println("disconnect success");   
95.        } catch (IOException ex)   
96.        {   
97.            System.out.println("not disconnect");   
98.            ex.printStackTrace();   
99.            throw new RuntimeException(ex);   
100.        }   
101.    }   
102.  
103.    /**  
104.     *   
105.     *       
106.     *   
107.     * @param localFile  
108.     *                  
109.     * @param remoteFile  
110.     *                  
111.     * @throws FtpProtocolException  
112.     */  
113.    public void upload(String localFile, String remoteFile) throws FtpProtocolException   
114.    {   
115.        this.localfilename = localFile;   
116.        this.remotefilename = remoteFile;   
117.        TelnetOutputStream os = null;   
118.        FileInputStream is = null;   
119.        try  
120.        {   
121.            //               
122.            os = (TelnetOutputStream) ftpClient.putFileStream(this.remotefilename, true);   
123.  
124.            //              
125.            File file_in = new File(this.localfilename);   
126.            is = new FileInputStream(file_in);   
127.  
128.            //           
129.            byte[] bytes = new byte[1024];   
130.            int c;   
131.            while ((c = is.read(bytes)) != -1)   
132.            {   
133.                os.write(bytes, 0, c);   
134.            }   
135.            System.out.println("upload success");   
136.        } catch (IOException ex)   
137.        {   
138.            System.out.println("not upload");   
139.            ex.printStackTrace();   
140.            throw new RuntimeException(ex);   
141.        } finally  
142.        {   
143.            try  
144.            {   
145.                if (is != null)   
146.                {   
147.                    is.close();   
148.                }   
149.            } catch (IOException e)   
150.            {   
151.                e.printStackTrace();   
152.            } finally  
153.            {   
154.                try  
155.                {   
156.                    if (os != null)   
157.                    {   
158.                        os.close();   
159.                    }   
160.                } catch (IOException e)   
161.                {   
162.                    e.printStackTrace();   
163.                }   
164.            }   
165.        }   
166.    }   
167.  
168.    /**  
169.     *   
170.     *       
171.     *   
172.     * @param remoteFile  
173.     *                  (    )  
174.     * @param localFile  
175.     *                  (   )  
176.     * @throws FtpProtocolException  
177.     *   
178.     */  
179.    public void download(String remoteFile, String localFile) throws FtpProtocolException   
180.    {   
181.        TelnetInputStream is = null;   
182.        FileOutputStream os = null;   
183.        try  
184.        {   
185.  
186.            //           filename,  TelnetInputStream         。   
187.            is = (TelnetInputStream) ftpClient.getFileStream(remoteFile);   
188.            File file_in = new File(localFile);   
189.            os = new FileOutputStream(file_in);   
190.  
191.            byte[] bytes = new byte[1024];   
192.            int c;   
193.            while ((c = is.read(bytes)) != -1)   
194.            {   
195.                os.write(bytes, 0, c);   
196.            }   
197.            System.out.println("download success");   
198.        } catch (IOException ex)   
199.        {   
200.            System.out.println("not download");   
201.            ex.printStackTrace();   
202.            throw new RuntimeException(ex);   
203.        } finally  
204.        {   
205.            try  
206.            {   
207.                if (is != null)   
208.                {   
209.                    is.close();   
210.                }   
211.            } catch (IOException e)   
212.            {   
213.                e.printStackTrace();   
214.            } finally  
215.            {   
216.                try  
217.                {   
218.                    if (os != null)   
219.                    {   
220.                        os.close();   
221.                    }   
222.                } catch (IOException e)   
223.                {   
224.                    e.printStackTrace();   
225.                }   
226.            }   
227.        }   
228.    }   
229.  
230.    /**  
231.     *       
232.     *   
233.     * @param agrs  
234.     */  
235.    public static void main(String agrs[])   
236.    {   
237.  
238.        String filepath[] =   
239.        { "/temp/aa.txt", "/temp/regist.log" };   
240.        String localfilepath[] =   
241.        { "C:\\tmp\\1.txt", "C:\\tmp\\2.log" };   
242.        FtpJdk ftp = new FtpJdk();   
243.        /*  
244.         *         、   、         FTP     
245.         */  
246.        try  
247.        {   
248.            ftp.connectServer("127.0.0.1", 22, "boonya", "user@", "/temp");   
249.        } catch (FtpProtocolException e)   
250.        {   
251.            e.printStackTrace();   
252.        }   
253.        //      
254.        for (int i = 0; i < filepath.length; i++)   
255.        {   
256.            try  
257.            {   
258.                ftp.download(filepath[i], localfilepath[i]);   
259.            } catch (FtpProtocolException e)   
260.            {   
261.                e.printStackTrace();   
262.            }   
263.        }   
264.        String localfile = "E:\\contact.txt";   
265.        String remotefile = "/temp/records.txt";   
266.        //      
267.        try  
268.        {   
269.            ftp.upload(localfile, remotefile);   
270.        } catch (FtpProtocolException e)   
271.        {   
272.            e.printStackTrace();   
273.        }   
274.        ftp.closeConnect();   
275.    }   
276.  
277.}  

 
 
자바 가 FTP 로 다운로드 파일 을 업로드 하 는 도 구 는 매우 많 습 니 다. 여기 서 저 는 자바 자체 API 를 사용 하여 FTP 로 다운로드 파일 을 업로드 합 니 다.또 JDK 1.7 이전 버 전과 그 이후 버 전의 API 가 크게 바 뀌 었 다.
예 를 들 면:
JDK 1.7 이전
JDK1.7
ftpClient = new FtpClinet()
ftpClient = FtpClient.create(ip)
ftpclient.login(user,password)
ftpclient.login(user,null,password)
ftpclient.binary()
ftpClient.setBinaryType();
FTP 서버 연결
   1: public class FTPUtil {
   2:     //FTP   IP  
   3:     public final static String FTP_HOST = "10.103.240.255";
   4:     
   5:     //FTP     
   6:     public final static int FTP_PORT = 21;
   7:     
   8:     //FTP      
   9:     public final static String FTP_USER = "bloodHunter";
  10:     
  11:     //  
  12:     public final static String FTP_PASSWORD = "wbljy";
  13:     
  14:     
  15:     public static FtpClient getConnect()
  16:     {
  17:         try {
  18:             FtpClient ftpClient = FtpClient.create(FTP_HOST);
  19:             ftpClient.login(FTP_USER, FTP_PASSWORD.toCharArray());
  20:             return ftpClient;
  21:         } catch (FtpProtocolException e) {
  22:             // TODO Auto-generated catch block
  23:             e.printStackTrace();
  24:             System.out.println("Connect to FTP Server fail!");
  25:             return null;
  26:         } catch (IOException e) {
  27:             // TODO Auto-generated catch block
  28:             e.printStackTrace();
  29:             System.out.println("Connect to FTP Server fail!");
  30:             return null;
  31:         }
  32:         
  33:     }
  34: }

파일 업로드
   1: /*
   2:  * ftp file upload
   3:  * @param path        
   4:  * @param fileName       
   5:  * @return       true,    false
   6:  * */
   7:     
   8:     public static boolean FtpUpload(String path,String fileName)
   9:     {
  10:         TelnetOutputStream os = null;
  11:         FileInputStream is = null;
  12:         FtpClient ftpClient = getConnect();
  13:         try {
  14:             ftpClient.setBinaryType();
  15:             os = (TelnetOutputStream) ftpClient.putFileStream(fileName, true);
  16:             is = new FileInputStream(new File(path));
  17:             byte[] buffer = new byte[1024];
  18:             int c;
  19:             while((c = is.read(buffer)) != -1)
  20:             {
  21:                 os.write(buffer,0,c);
  22:             }
  23:             System.out.println("Upload Success!");
  24:             return true;
  25:         } catch (Exception e) {
  26:             // TODO: handle exception
  27:             e.printStackTrace();
  28:             System.out.println("Upload fail!");
  29:             return false;
  30:         }finally{
  31:             try {
  32:                 ftpClient.close();
  33:                 is.close();
  34:                 os.close();
  35:             } catch (IOException e) {
  36:                 // TODO Auto-generated catch block
  37:                 e.printStackTrace();
  38:             }
  39:         }
  40:     }

파일 다운로드
   1: /*
   2:  * ftp file download
   3:  * @param path          
   4:  * @param fileName       
   5:  * @return       true,    false
   6:  * */
   7:     public static boolean FtpDownload(String path,String fileName)
   8:     {
   9:         FileInputStream is = null;
  10:         FileOutputStream os = null;
  11:         FtpClient ftpClient = getConnect();
  12:         try {
  13:             is =  (FileInputStream) ftpClient.getFileStream(fileName);
  14:             os = new FileOutputStream(new File(path));
  15:             byte[] buffer = new byte[1024];
  16:             int c;
  17:             while((c = is.read(buffer)) != -1)
  18:             {
  19:                 os.write(buffer,0,c);
  20:             }
  21:             System.out.println("Download Success!");
  22:             return true;
  23:         } catch (FtpProtocolException e) {
  24:             // TODO Auto-generated catch block
  25:             e.printStackTrace();
  26:             System.out.println("Download fail!");
  27:             return false;
  28:         } catch (IOException e) {
  29:             // TODO Auto-generated catch block
  30:             e.printStackTrace();
  31:             System.out.println("Download fail");
  32:             return false;
  33:         }catch (Exception e) {
  34:             // TODO: handle exception
  35:             e.printStackTrace();
  36:             return false;
  37:         }
  38:         finally{
  39:             try {
  40:                 is.close();
  41:                 os.close();
  42:                 ftpClient.close();
  43:             } catch (IOException e) {
  44:                 // TODO Auto-generated catch block
  45:                 e.printStackTrace();
  46:             }
  47:         }
  48:     }

 
FTP 디 렉 터 리 파일 옮 겨 다 니 기
   1: /*
   2:  * FTP getFileList
   3:  * @param filenames         
   4:  * @param path        
   5:  * */
   6:     public static void getFtpFileList(List<String> filenames,String path){
   7:         //DataInputStream ds = null;
   8:         BufferedReader ds = null;
   9:         FtpClient ftpClient = getConnect();
  10:         try {
  11:             ds = new BufferedReader(new InputStreamReader(ftpClient.nameList(path),"ISO-8859-1"));
  12:             String line = "";
  13:             while((line = ds.readLine())!=null){
  14:                 line = new String(line.getBytes("ISO-8859-1"),"GBK");
  15:                 String name[] = line.split("/");
  16:                 filenames.add(name[name.length - 1]);
  17:             }
  18:         } catch (FtpProtocolException e) {
  19:             // TODO Auto-generated catch block
  20:             e.printStackTrace();
  21:         } catch (IOException e) {
  22:             // TODO Auto-generated catch block
  23:             e.printStackTrace();
  24:         }finally{
  25:             try {
  26:                 ds.close();
  27:                 ftpClient.close();
  28:             } catch (IOException e) {
  29:                 // TODO Auto-generated catch block
  30:                 e.printStackTrace();
  31:             }
  32:         }
  33:     }

 
사용자 이름 비밀번호 가 설정 되 어 있 지 않 으 면 익명 사용자 로 로그 인 할 수 있 습 니 다. ftpClient. login ( "anonymous", "[email protected]" );
 익명
당신 은 많은 FTP 에 로그 인 할 때 이 걸 사용 합 니 다. 그리고 메 일 주 소 를 마음대로 주 었 습 니 다.
이메일 주 소 를 주지 않 으 면 안 됩 니 다. 그렇지 않 으 면 로그 인하 지 못 하 게 합 니 다.

좋은 웹페이지 즐겨찾기