Upload to FTP using Java

I'm just wondering if there is an easy way to upload a small file to an ftp server. I checked the Apache Commons Net library, but it seems rather complicated, to be honest. Is there an easier way to upload a small file to ftp?

Finished using the Apache Commons Net library, it was not too difficult.

+8
java ftp uploading
source share
3 answers

From this link: Upload files to an FTP server using the URLConnection class . No external library is required.

String ftpUrl = "ftp://%s:% s@ %s/%s;type=i"; String host = "www.myserver.com"; String user = "tom"; String pass = "secret"; String filePath = "E:/Work/Project.zip"; String uploadPath = "/MyProjects/archive/Project.zip"; ftpUrl = String.format(ftpUrl, user, pass, host, uploadPath); System.out.println("Upload URL: " + ftpUrl); try { URL url = new URL(ftpUrl); URLConnection conn = url.openConnection(); OutputStream outputStream = conn.getOutputStream(); FileInputStream inputStream = new FileInputStream(filePath); byte[] buffer = new byte[BUFFER_SIZE]; int bytesRead = -1; while ((bytesRead = inputStream.read(buffer)) != -1) { outputStream.write(buffer, 0, bytesRead); } inputStream.close(); outputStream.close(); System.out.println("File uploaded"); } catch (IOException ex) { ex.printStackTrace(); } 
+19
source share

Using Apache commons lib has this utility org.apache.commons.net.ftp.FTPClient:

http://commons.apache.org/

 import org.apache.commons.net.ftp.FTPClient; FTPClient client = new FTPClient(); String sFTP = "ftp.miservidor.com"; String sUser = "usuario"; String sPassword = "password"; try { client.connect(sFTP); boolean login = client.login(sUser,sPassword); } catch (IOException ioe) {} 

Full example: http://www.google.es/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CD8QFjAB&url=http%3A%2F%2Fcommons.apache.org%2Fproper%2Fcommons-net%2Fexamples % 2Fftp% 2FFTPClientExample.java & ei = JGLUUdsrotHsBtj9gNgI & usg = AFQjCNHymPhHZOKh2S4yuLMTYHTVTnQ02g & sig2 = 8kJSz_Gl-vsPECe8sIxLGA b8v8d & bmvj bvm

+2
source share

I think I found a pretty good sample using org.apache.commons.net.ftp.FTPClient here

 import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import org.apache.commons.net.ftp.FTP; import org.apache.commons.net.ftp.FTPClient; /** * A program that demonstrates how to upload files from local computer * to a remote FTP server using Apache Commons Net API. * @author www.codejava.net */ public class FTPUploadFileDemo { public static void main(String[] args) { String server = "www.myserver.com"; int port = 21; String user = "user"; String pass = "pass"; FTPClient ftpClient = new FTPClient(); try { ftpClient.connect(server, port); ftpClient.login(user, pass); ftpClient.enterLocalPassiveMode(); ftpClient.setFileType(FTP.BINARY_FILE_TYPE); // APPROACH #1: uploads first file using an InputStream File firstLocalFile = new File("D:/Test/Projects.zip"); String firstRemoteFile = "Projects.zip"; InputStream inputStream = new FileInputStream(firstLocalFile); System.out.println("Start uploading first file"); boolean done = ftpClient.storeFile(firstRemoteFile, inputStream); inputStream.close(); if (done) { System.out.println("The first file is uploaded successfully."); } // APPROACH #2: uploads second file using an OutputStream File secondLocalFile = new File("E:/Test/Report.doc"); String secondRemoteFile = "test/Report.doc"; inputStream = new FileInputStream(secondLocalFile); System.out.println("Start uploading second file"); OutputStream outputStream = ftpClient.storeFileStream(secondRemoteFile); byte[] bytesIn = new byte[4096]; int read = 0; while ((read = inputStream.read(bytesIn)) != -1) { outputStream.write(bytesIn, 0, read); } inputStream.close(); outputStream.close(); boolean completed = ftpClient.completePendingCommand(); if (completed) { System.out.println("The second file is uploaded successfully."); } } catch (IOException ex) { System.out.println("Error: " + ex.getMessage()); ex.printStackTrace(); } finally { try { if (ftpClient.isConnected()) { ftpClient.logout(); ftpClient.disconnect(); } } catch (IOException ex) { ex.printStackTrace(); } } } } 
+1
source share

All Articles