Chinaunix首页 | 论坛 | 博客
  • 博客访问: 164923
  • 博文数量: 56
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 593
  • 用 户 组: 普通用户
  • 注册时间: 2014-02-18 09:59
文章分类

全部博文(56)

文章存档

2019年(1)

2018年(26)

2016年(1)

2015年(6)

2014年(22)

我的朋友

分类: Java

2018-06-29 16:20:58




点击(此处)折叠或打开

  1. import org.apache.commons.net.ftp.FTPClient;
  2. import org.mogujie.recruit.web.exception.BusinessException;
  3. import org.slf4j.Logger;
  4. import org.slf4j.LoggerFactory;

  5. import java.io.File;
  6. import java.io.FileInputStream;
  7. import java.io.IOException;
  8. import java.io.InputStream;

  9. /**
  10.  */
  11. public class FtpUtil {
  12.     private static final Logger logger = LoggerFactory.getLogger(FtpUtil.class);

  13.     /**
  14.      * Description: 向FTP服务器上传文件
  15.      *
  16.      * @param url FTP服务器hostname
  17.      * @param port FTP服务器端口
  18.      * @param username FTP登录账号
  19.      * @param password FTP登录密码
  20.      * @param path FTP服务器保存目录
  21.      * @param filename 上传到FTP服务器上的文件名
  22.      * @param input 输入流
  23.      * @return 成功返回true,否则返回false *
  24.      * @Version 1.0
  25.      */
  26.     public static void uploadFile(String url,// FTP服务器hostname
  27.                                      int port,// FTP服务器端口
  28.                                      String username, // FTP登录账号
  29.                                      String password, // FTP登录密码
  30.                                      String path, // FTP服务器保存目录
  31.                                      String filename, // 上传到FTP服务器上的文件名
  32.                                      InputStream input // 输入流
  33.     ) {
  34.         FTPClient ftp = new FTPClient();
  35.         ftp.setControlEncoding("GBK");
  36.         try {
  37.             ftp.connect(url, port);// 连接FTP服务器
  38.             // 如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
  39.             Boolean result = ftp.login(username, password);// 登录
  40.             if(!result){
  41.                 ftp.disconnect();
  42.                 throw new BusinessException("ftp.login 失败");
  43.             }
  44.             ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
  45.             ftp.makeDirectory(path);
  46.             ftp.changeWorkingDirectory(path);
  47.             ftp.enterLocalPassiveMode();//Switch to passive mode
  48.             result = ftp.storeFile(filename, input);
  49.             if(!result){
  50.                 ftp.disconnect();
  51.                 String logStr = String.format("ftp.storeFile失败 ===> ReplyCode:%d ReplyString:%s",
  52.                         ftp.getReplyCode(), ftp.getReplyString());
  53.                 throw new BusinessException(logStr);
  54.             }
  55.             result = ftp.logout();
  56.             if(!result){
  57.                 ftp.disconnect();
  58.                 throw new BusinessException("ftp.logout 失败");
  59.             }
  60.         } catch (IOException e) {
  61.             logger.error("new IOException:" + e.getMessage(), e);
  62.             throw new BusinessException("new IOException:" + e.getMessage(), e);
  63.         } finally {
  64.             if (ftp.isConnected()) {
  65.                 try {
  66.                     ftp.disconnect();
  67.                 } catch (IOException ioe) {
  68.                     logger.error("new IOException:", ioe);
  69.                 }
  70.             }
  71.             try {
  72.                 input.close();
  73.             }catch (IOException ex){
  74.                 logger.error("new IOException:", ex);
  75.             }
  76.         }
  77.     }

  78.     /**
  79.      * 将本地文件上传到FTP服务器上 *
  80.      */
  81.     public static void upLoadFromProduction(String url,// FTP服务器hostname
  82.                                             int port,// FTP服务器端口
  83.                                             String username, // FTP登录账号
  84.                                             String password, // FTP登录密码
  85.                                             String path, // FTP服务器保存目录
  86.                                             String filename, // 上传到FTP服务器上的文件名
  87.                                             String orginfilename // 输入流文件名
  88.     ) {
  89.         try {
  90.             FileInputStream in = new FileInputStream(new File(orginfilename));
  91.             uploadFile(url, port, username, password, path, filename, in);
  92.         } catch (Exception e) {
  93.             logger.error("upLoadFromProduction error:", e);
  94.         }
  95.     }

  96. }

阅读(1276) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~