Java如何使用FTP实现文件上传下载

  介绍

本篇文章为大家展示了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
  null

Java如何使用FTP实现文件上传下载