I created a function to download files from an FTP server that I have access to. How would I upload files back to the FTP server?
Below is the download_files method i used:
public static void download_files(String un, String pw, String ip, String dir, String fn, String fp){
URLConnection con; BufferedInputStream in = null; FileOutputStream out = null;
try{
URL url = new URL("ftp://"+un+":"+pw+"@"+ip+"/"+dir+"/"+fn+";type=i"); con = url.openConnection(); in = new BufferedInputStream(con.getInputStream()); out = new FileOutputStream(fp+fn);
int i = 0; byte[] bytesIn = new byte[1024];
while ((i = in.read(bytesIn)) >= 0) { out.write(bytesIn, 0, i); } }catch(Exception e){ System.out.print(e); e.printStackTrace(); System.out.println("Error while FTP'ing "+fn);
}finally{ try{ out.close(); in.close(); }catch(IOException e){ e.printStackTrace(); System.out.println("Error while closing FTP connection"); } } }--
Use the FTPClient Class from the Apache Commons Net library.
This is a snippet with an example:
FTPClient client = new FTPClient(); FileInputStream fis = null;
try { client.connect("ftp.domain.com"); client.login("admin", "secret");
// // Create an InputStream of the file to be uploaded // String filename = "Touch.dat"; fis = new FileInputStream(filename);
// // Store file to server // client.storeFile(filename, fis); client.logout(); } catch (IOException e) { e.printStackTrace(); } finally { try { if (fis != null) { fis.close(); } client.disconnect(); } catch (IOException e) { e.printStackTrace(); } }
Snippet taken from http://www.kodejava.org/examples/356.html
--
I have used the EDT FTP package, a free GPL library for FTP in Java: http://www.enterprisedt.com/products/edtftpj/overview.html
--
I have used the EDT FTP package, a free GPL library for FTP in Java: http://www.enterprisedt.com/products/edtftpj/overview.html
Here is a code sample, from the Demo.java class they provide:
ftp = new FTPClient(); ftp.setRemoteHost("hostname");
// connect ftp.connect();
// login ftp.login("user", "password");
// set up passive ASCII transfers ftp.setConnectMode(FTPConnectMode.PASV);
ftp.setType(FTPTransferType.ASCII);
// get directory and print it to console String[] files = ftp.dir(".", true); for (int i = 0; i < files.length; i++) log.debug(files[i]);
// copy file to server
ftp.put("test.txt", "test.txt");
// copy file from server ftp.get("test.txt" + ".copy", "test.txt");
// delete file from server ftp.delete("test.txt");
// Shut down client
ftp.quit();
--