How to give FTP address in java?

匿名 (未验证) 提交于 2019-12-03 09:52:54

问题:

I have written the code which downloads the file from FTP server. Since I have my FTP server locally and I want to access like "ftp://localhost/alfresco". It was alfresco's FTP.

I have the following Code

public class FtpTransfer { public static final void main(String[] args) {     FTPClient ftp = new FTPClient();     FileOutputStream br = null;     try     {         ftp.connect("ftp://localhost/alfresco");         ftp.login("admin", "admin");         String file = "KPUB//Admin//TMM//Pickup//TMM_TO_ARTESIA_06152010220246.xml";          br = new FileOutputStream("file");         ftp.retrieveFile("/"+file, br);         System.out.println("Downloaded...");     }     catch(IOException exception) {         System.out.println("Error : "+exception);     } } }

The following exception occurs.

Error : java.net.UnknownHostException: ftp://localhost/alfresco

Please let me know how should I give the FTP Host Address?

回答1:

Here is an example demonstrating connection to a server, changing present working directory, listing files in a directory and downloading a file to some specified directory.

package test;  import java.io.FileOutputStream; import java.io.IOException; import java.net.SocketException;  import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPFile;  public class FtpTransfer {  public static final void main(String[] args) throws SocketException, IOException {   FTPClient ftp = new FTPClient();   ftp.connect("ftp.somedomain.com"); // or "localhost" in your case   System.out.println("login: "+ftp.login("username", "pass"));    ftp.changeWorkingDirectory("folder/subfolder/");   // list the files of the current directory   FTPFile[] files = ftp.listFiles();     System.out.println("Listed "+files.length+" files.");   for(FTPFile file : files) {    System.out.println(file.getName());   }    // lets pretend there is a JPEG image in the present folder that we want to copy to the desktop (on a windows machine)   ftp.setFileType(FTPClient.BINARY_FILE_TYPE); // don't forget to change to binary mode! or you will have a scrambled image!         FileOutputStream br = new FileOutputStream("C:\\Documents and Settings\\casonkl\\Desktop\\my_downloaded_image_new_name.jpg");    ftp.retrieveFile("name_of_image_on_server.jpg", br);   ftp.disconnect();   } }


回答2:

FTPClient f = new FTPClient(); f.connect("localhost"); f.login(username, password); FTPFile[] files = listFiles(directory);   

Also See



回答3:

Try remove protocol ("ftp://") from your url.

And please, look at the example.



回答4:

The FTPClient.connect() method takes the name of a server, not a URL. Try:

ftp.connect("localhost");

Also, you may need to put alfresco somewhere else. If it's part of the file path,

String file = "alfresco/KPUB//Admin//TMM//Pickup//TMM_TO_ARTESIA_06152010220246.xml";


转载请标明出处:How to give FTP address in java?
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!