Java FTP客户端上传示例– Apache Commons Net
时间:2020-02-23 14:36:36 来源:igfitidea点击:
Java FTP Client用于将文件上传到FTP服务器。
最近,我在一个Web项目中工作,必须将大量图像上传到FTP服务器。
几天前,我编写了一个程序来调整java中图像的大小。
我的实际程序是调整目录中所有图像的大小,然后使用Apache Commons Net API上传到FTP服务器。
Java FTP客户端示例
其中我提供了一个Java FTP客户端程序,可以使用Apache Commons Net API将文件上传到FTP服务器。
package com.theitroad.comheritance; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import org.apache.commons.net.PrintCommandListener; import org.apache.commons.net.ftp.FTP; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPReply; public class FTPUploader { FTPClient ftp = null; public FTPUploader(String host, String user, String pwd) throws Exception{ ftp = new FTPClient(); ftp.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out))); int reply; ftp.connect(host); reply = ftp.getReplyCode(); if (!FTPReply.isPositiveCompletion(reply)) { ftp.disconnect(); throw new Exception("Exception in connecting to FTP Server"); } ftp.login(user, pwd); ftp.setFileType(FTP.BINARY_FILE_TYPE); ftp.enterLocalPassiveMode(); } public void uploadFile(String localFileFullName, String fileName, String hostDir) throws Exception { try(InputStream input = new FileInputStream(new File(localFileFullName))){ this.ftp.storeFile(hostDir + fileName, input); } } public void disconnect(){ if (this.ftp.isConnected()) { try { this.ftp.logout(); this.ftp.disconnect(); } catch (IOException f) { //do nothing as file is already saved to server } } } public static void main(String[] args) throws Exception { System.out.println("Start"); FTPUploader ftpUploader = new FTPUploader("ftp.theitroad.local", "ftpUser", "ftpPassword"); //FTP server path is relative. So if FTP account HOME directory is "/home/hyman/public_html/" and you need to upload //files to "/home/hyman/public_html/wp-content/uploads/image2/", you should pass directory parameter as "/wp-content/uploads/image2/" ftpUploader.uploadFile("D:\hyman\images\MyImage.png", "image.png", "/wp-content/uploads/image2/"); ftpUploader.disconnect(); System.out.println("Done"); } }
您可以使用上述程序连接到FTP服务器,然后将文件上传到服务器。
确保在程序中正确提供了FTP主机,用户和密码的详细信息。
创建FTP用户时,可以获取这些详细信息。
要注意的另一个重要点是服务器目录位置。
它是相对于FTP用户主目录的。
另外,完成所有文件的上传后,请关闭与服务器的连接并释放资源。