介绍
本篇文章为大家展示了Java如何使用FTP实现文件上传下载,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
在没给大家上完整代码之前先给大家说下注意点:
包com.yinhai.team.action; 进口java.io.File; 进口java.io.FileInputStream; 进口java.io.FileOutputStream; 进口java.io.IOException; 进口java.io.InputStream; 进口java.io.OutputStream; 进口org.apache.commons.net.ftp.FTPClient; 进口org.apache.commons.net.ftp.FTPFile; 进口org.apache.commons.net.ftp.FTPReply; 公开课FavFTPUtil {/* * *上传文件(可供行动/控制器层使用)未测试 * @param主机FTP服务器地址 * @param FTP港服务器端口号 * @param FTP用户名登录帐号 * @param FTP密码登录密码 * @param路径名FTP服务器保存目录 * @param文件名上传到FTP服务器后的文件名称 * @param inputStream输入文件流 * @return */公共静态布尔还是(String主机名、int端口,用户名的字符串,字符串密码,路径名的字符串,字符串文件名,InputStream InputStream) { 布尔标志=false; FTPClient FTPClient=new FTPClient (); ftpClient.setControlEncoding (“UTF-8"); 尝试{//连接FTP服务器 ftpClient。连接(主机名、端口);//登录FTP服务器 ftpClient。登录(用户名、密码);//是否成功登录FTP服务器 int replyCode=ftpClient.getReplyCode (); 如果(! FTPReply.isPositiveCompletion (replyCode)) { 返回国旗; } ftpClient.setFileType (FTPClient.BINARY_FILE_TYPE); ftpClient.makeDirectory(路径); ftpClient.changeWorkingDirectory(路径); ftpClient。storeFile(文件名,inputStream); inputStream.close (); ftpClient.logout (); 国旗=true; }捕捉(异常e) { e.printStackTrace (); 最后}{ 如果(ftpClient.isConnected ()) { 尝试{ ftpClient.disconnect (); }捕捉(IOException e) { e.printStackTrace (); } } } 返回国旗; }/* * *上传文件(可对文件进行重命名)未测试 * @param主机FTP服务器地址 * @param FTP港服务器端口号 * @param FTP用户名登录帐号 * @param FTP密码登录密码 * @param路径名FTP服务器保存目录 * @param文件名上传到FTP服务器后的文件名称 * @param originfilename待上传文件的名称(绝对地址) * @return */公共静态布尔uploadFileFromProduction (String主机名、int端口,用户名的字符串,字符串密码字符串路径名,文件名字符串,字符串originfilename) { 布尔标志=false; 尝试{ InputStream InputStream=new FileInputStream(新文件(originfilename)); 国旗=还是(主机名、端口、用户名、密码、路径、文件名、inputStream); }捕捉(异常e) { e.printStackTrace (); } 返回国旗; }/* * *上传文件(不可以进行文件的重命名操作)未测试 * @param主机FTP服务器地址 * @param FTP港服务器端口号 * @param FTP用户名登录帐号 * @param FTP密码登录密码 * @param路径名FTP服务器保存目录 * @param originfilename待上传文件的名称(绝对地址) * @return */公共静态布尔uploadFileFromProduction (String主机名、int端口,用户名的字符串,字符串密码,路径名的字符串,字符串originfilename) { 布尔标志=false; 尝试{ 字符串文件名=新文件(originfilename) . getname (); InputStream InputStream=new FileInputStream(新文件(originfilename)); 国旗=还是(主机名、端口、用户名、密码、路径、文件名、inputStream); }捕捉(异常e) { e.printStackTrace (); } 返回国旗; }/* * *删除文件未测试 * @param主机FTP服务器地址 * @param FTP港服务器端口号 * @param FTP用户名登录帐号 * @param FTP密码登录密码 * @param路径名FTP服务器保存目录 * @param文件名要删除的文件名称 * @return */公共静态布尔deleteFile (String主机名、int端口,用户名的字符串,字符串密码,路径名的字符串,字符串文件名){ 布尔标志=false; FTPClient FTPClient=new FTPClient (); 尝试{//连接FTP服务器 ftpClient。连接(主机名、端口);//登录FTP服务器 ftpClient。登录(用户名、密码);//验证FTP服务器是否登录成功 int replyCode=ftpClient.getReplyCode (); 如果(! FTPReply.isPositiveCompletion (replyCode)) { 返回国旗; }//切换FTP目录 ftpClient.changeWorkingDirectory(路径); ftpClient.dele(文件名); ftpClient.logout (); 国旗=true; }捕捉(异常e) { e.printStackTrace (); 最后}{ 如果(ftpClient.isConnected ()) { 尝试{ ftpClient.logout (); }捕捉(IOException e) { } } } 返回国旗; }/* * *下载文件 * @param主机FTP服务器地址 * @param FTP港服务器端口号 * @param FTP用户名登录帐号 * @param FTP密码登录密码 * @param路径名FTP服务器文件目录 * @param文件名文件名称 * @param localpath下载后的文件路径 * @return */公共静态布尔downloadFile (String主机名、int端口,用户名的字符串,字符串密码字符串路径名,文件名字符串,字符串localpath) { 布尔标志=false; FTPClient FTPClient=new FTPClient (); 尝试{//连接FTP服务器 ftpClient。连接(主机名、端口);//登录FTP服务器 ftpClient。登录(用户名、密码);//验证FTP服务器是否登录成功 int replyCode=ftpClient.getReplyCode (); 如果(! FTPReply.isPositiveCompletion (replyCode)) { 返回国旗; }//切换FTP目录 布尔b=ftpClient。changeWorkingDirectory(新的字符串(pathname.getBytes (),“iso - 8859 - 1 -“)); System.out.println (b); FTPFile [] ftpFiles=ftpClient.listFiles (); (FTPFile文件:ftpFiles) { 字符串?新的字符串(file.getName () .getBytes (“iso - 8859 - 1 -“),“UTF-8"); System.out.println(帧); 如果(filename.equalsIgnoreCase(帧)){ 文件localFile=新文件(localpath +“/?+帧); OutputStream os=new FileOutputStream (localFile); ftpClient.retrieveFile (file.getName()、操作系统); os.close (); } } ftpClient.logout (); 国旗=true; }捕捉(异常e) { e.printStackTrace (); 最后}{ 如果(ftpClient.isConnected ()) { 尝试{ ftpClient.logout (); null null null null null null nullJava如何使用FTP实现文件上传下载