FTP 传输文件后台代码

来源:互联网 发布:图片自动播放软件 编辑:程序博客网 时间:2024/05/22 04:44

    /**       * Description: 向FTP服务器上传文件       * @param host FTP服务器hostname       * @param port FTP服务器端口       * @param username FTP登录账号       * @param password FTP登录密码       * @param basePath FTP服务器基础目录     * @param filePath FTP服务器文件存放路径。例如分日期存放:/2015/01/01。文件的路径为basePath+filePath     * @param filename 上传到FTP服务器上的文件名       * @param input 输入流       * @return 成功返回true,否则返回false       */    public  boolean uploadFile(String host, int port, String username, String password, String basePath,                  String filePath, String filename, InputStream input) {              boolean result = false;              FTPClient ftp = new FTPClient();              try {                  int reply;                  ftp.connect(host, port);// 连接FTP服务器                  // 如果采用默认端口,可以使用ftp.connect(host)的方式直接连接FTP服务器                  ftp.login(username, password);// 登录                  reply = ftp.getReplyCode();                  if (!FTPReply.isPositiveCompletion(reply)) {                      ftp.disconnect();                      return result;                  }                  ftp.setControlEncoding("UTF-8");                ftp.enterLocalPassiveMode();                ftp.setFileTransferMode(FTP.STREAM_TRANSFER_MODE);                //切换到上传目录                  if (!ftp.changeWorkingDirectory(basePath+filePath)) {                      //如果目录不存在创建目录                      String[] dirs = filePath.split("/");                      String tempPath = basePath;                      for (String dir : dirs) {                          if (null == dir || "".equals(dir)) continue;                          tempPath += "/" + dir;                          if (!ftp.changeWorkingDirectory(tempPath)) {                              if (!ftp.makeDirectory(tempPath)) {                                  return result;                              } else {                                  ftp.changeWorkingDirectory(tempPath);                              }                          }                      }                  }                  //设置上传文件的类型为二进制类型                  ftp.setFileType(FTP.BINARY_FILE_TYPE);                  //上传文件                  if (!ftp.storeFile(new String(filename.getBytes("UTF-8"),"iso-8859-1"), input)) {                      return result;                  }                                 input.close();                  ftp.logout();                  result = true;              } catch (IOException e) {                  e.printStackTrace();              } finally {                  if (ftp.isConnected()) {                      try {                          ftp.disconnect();                      } catch (IOException ioe) {                      }                  }              }              return result;          } 

最近,做一个生成excel之后,通过ftp文件传输到服务器,并推送到微信。

下面这里是ftp传输的关键代码

 

//调用方法,和返回值,如果返回true,传输成功

boolean result = wxsmsService.uploadFile(ftpHost, 21, ftpUser, ftpPwd, ftpBasepath, String.valueOf(task.getTaskId()), date+"网点到访短信发送情况.xls", in);
  System.out.println("taskId======="+task.getTaskId()+"======="+result);
       

1 0
原创粉丝点击