• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

详细介绍Java FTP上传下载删除功能实例代码

java 搞代码 4年前 (2022-01-09) 24次浏览 已收录 0个评论

这篇文章主要介绍了Java FTP上传下载删除功能实例代码,非常不错,具有参考借鉴价值,需要的朋友可以参考下

在没给大家上完整代码之前先给大家说下注意点:

FTP上传下载,容易出现乱码,记得转换

package com.yinhai.team.action;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import org.apache.commons.net.ftp.FTPClient;import org.apache.commons.net.ftp.FTPFile;import org.apache.commons.net.ftp.FTPReply;public class FavFTPUtil {   /**    * 上传文件(可供Action/Controller层使用)未测试    * @param hostname FTP服务器地址     * @param port FTP服务器端口号    * @param username FTP登录帐号    * @param password FTP登录密码    * @param pathname FTP服务器保存目录    * @param fileName 上传到FTP服务器后的文件名称    * @param inputStream 输入文件流    * @return    */   public static boolean uploadFile(String hostname, int port, String username, String password, String pathname, String fileName, InputStream inputStream){    boolean flag = false;    FTPClient ftpClient = new FTPClient();    ftpClient.setControlEncoding("UTF-8");    try {     //连接FTP服务器     ftpClient.connect(hostname, port);     //登录FTP服务器     ftpClient.login(username, password);     //是否成功登录FTP服务器     int replyCode = ftpClient.getReplyCode();     if(!FTPReply.isPositiveCompletion(replyCode)){      return flag;     }     ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);     ftpClient.makeDirectory(pathname);     ftpClient.changeWorkingDirectory(pathname);     ftpClient.storeFile(fileName, inputStream);     inputStream.close();     ftpClient.logout();     flag = true;    } catch (Exception e) {     e.printStackTrace();    } finally{     if(ftpClient.isConnected()){      try {       ftpClient.disconnect();      } catch (IOException e) {       e.printStackTrace();      }     }    }    return flag;   }   /**    * 上传文件(可对文件进行重命名)未测试    * @param hostname FTP服务器地址    * @param port FTP服务器端口号    * @param username FTP登录帐号    * @param password FTP登录密码    * @param pathname FTP服务器保存目录    * @param filename 上传到FTP服务器后的文件名称    * @param originfilename 待上传文件的名称(绝对地址)    * @return    */   public static boolean uploadFileFromProduction(String hostname, int port, String username, String password, String pathname, String filename,    String originfilename){    boolean flag = false;    try {     InputStream inputStream = new FileInputStream(new File(originfilename));     flag = uploadFile(hostname, port, username, password, pathname, filename, inputStream);    } catch (Exception e) {     e.printStackTrace();    }    return flag;   }   /**    * 上传文件(不可以进行文件的重命名操作) 未测试    * @param hostname FTP服务器地址    * @param port FTP服务器端口号    * @param username FTP登录帐号    * @param password FTP登录密码    * @param pathname FTP服务器保存目录    * @param originfilename 待上传文件的名称(绝对地址)    * @return    */   public static boolean uploadFileFromProduction(String hostname, int port, String username, String password, String pathname, String originfilename){    boolean flag = false;    try {     String fileName = new File(originfilename).getName();     InputStream inputStream = new FileInputStream(new File(originfilename));     flag = uploadFile(hostname, port, username, password, pathname, fileName, inputStream);    } catch (Exception e) {     e.printStackTrace();    }    return flag;   }   /**     * 删除文件 未测试    * @param hostname FTP服务器地址    * @param port FTP服务器端口号    * @param username FTP登录帐号    * @param password FTP登录密码    * @param pathname FTP服务器保存目录    * @param filename 要删除的文件名称    * @return    */   public static boolean deleteFile(String hostname, int port, String username, String password, String pathname, String filename){    boolean flag = false;    FTPClient ftpClient = new FTPClient();    try {     //连接FTP服务器     ftpClient.connect(hostname, port);     //登录FTP服务器     ftpClient.login(username, password);     //验证FTP服务器是否登录成功     int replyCode = ftpClient.getReplyCode();     if(!FTPReply.isPositiveCompletion(replyCode)){      return flag;     }     //切换FTP目录     ftpClient.changeWorkingDirectory(pathname);     ftpClient.dele(filename);     ftpClient.logout();     flag = true;    } catch (Exception e) {     e.printStackTrace();    } finally{     if(ftpClient.isConnected()){      try {       ftpClient.logout();      } catch (IOException e) {      }     }    }    return flag;   }   /**    * 下载文件     * @param hostname FTP服务器地址    * @param port FTP服务器端口号    * @param username FTP登录帐号    * @param password FTP登录密码    * @param pathname FTP服务器文件目录    * @param filename 文件名称    * @param localpath 下载后的文件路径    * @return    */  public static boolean downloadFile(String hostname, int port, String username, String password, String pathname, String filename, String localpath){    boolean flag = false;    FTPClient ftpClient = new FTPClient();    try {     //连接FTP服务器     ftpClient.connect(hostname, port);     //登录FTP服务器     ftpClient.login(username, password);     //验证FTP服务器是否登录成功     int replyCode = ftpClient.getReplyCode();     if(!FTPReply.isPositiveCompletion(replyCode)){      return flag;     }     //切换FTP目录     boolean b = ftpClient.changeWorkingDirectory(new String(pathname.getBytes(),"ISO-8859-1"));     System.out.println(b);     FTPFile[] ftpFiles = ftpClient.listFiles();     for(FTPFile file : ftpFiles){       String fName = new String(file.getName().getBytes(&<em style="color:transparent">本文来源[email protected]搞@^&代*@码)网9</em>quot;iso-8859-1"), "UTF-8");       System.out.println(fName);      if(filename.equalsIgnoreCase(fName)){       File localFile = new File(localpath + "/" + fName);       OutputStream os = new FileOutputStream(localFile);       ftpClient.retrieveFile(file.getName(), os);       os.close();      }     }     ftpClient.logout();     flag = true;    } catch (Exception e) {     e.printStackTrace();    } finally{     if(ftpClient.isConnected()){      try {       ftpClient.logout();      } catch (IOException e) {      }     }    }    return flag;   }}

以上就是详细介绍Java FTP上传下载删除功能实例代码的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:详细介绍Java FTP上传下载删除功能实例代码
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址