Session session = null;
Channel channel = null;
int port = SettleConstant.SFTP_DEFAULT_PORT;
String user = SFTPDETAIL.get(SettleConstant.SFTP_REQ_USERNAME);
String pwd = SFTPDETAIL.get(SettleConstant.SFTP_REQ_PASSWORD);
String ip = SFTPDETAIL.get(SettleConstant.SFTP_REQ_HOST);
JSch jsch = new JSch();
if(port <=0){
session = jsch.getSession(user, ip);
}else{
session = jsch.getSession(user, ip ,port);
}
//如果服务器连接不上,则抛出异常
if (session == null) {
throw new Exception("session is null");
}
//设置登陆主机的密码
session.setPassword(pwd);//设置密码
//设置第一次登陆的时候提示,可选值:(ask | yes | no)
session.setConfig("StrictHostKeyChecking", "no");
//设置登陆超时时间
session.connect(3000);
OutputStream outstream = null;
ChannelSftp sftp = null;
try {
//创建sftp通信通道
channel = session.openChannel("sftp");
channel.connect(1000);
sftp = (ChannelSftp) channel;
Vector fileList = sftp.ls("/upload");
Iterator<LsEntry> sftpFileNames = fileList.iterator();
while(sftpFileNames.hasNext()){
LsEntry isEntity = sftpFileNames.next();
String fileName = isEntity.getFilename();
if(fileName.startsWith("gewala_")){
String subName = fileName.substring(7,fileName.length() - 4);
Date fileDate = DateUtil.parseDate(subName,"yyyyMMdd");
Date d1 = DateUtil.getMonthFirstDay(fileDate);
Date d2 = DateUtil.getMonthFirstDay(DateUtil.getCurDate());
if(d1.equals(d2)){
sftp.rm("/upload/" + fileName);
}
}
}
outstream = sftp.put("/upload/gewala_" + DateUtil.format(DateUtil.getCurDate(), "yyyyMMdd") +".xls", ChannelSftp.OVERWRITE);
logger.warn("万达订单明细生成,正在上传excel文件到sftp,文件名/upload/gewala_" + DateUtil.format(DateUtil.getCurDate(), "yyyyMMdd") +".xls");
wb.write(outstream);
} catch (Exception e) {
logger.error("万达订单明细生成,上传Excel失败,原因:" + e.getMessage());
throw e;
} finally {
sftp.quit();
channel.disconnect();
session.disconnect();
}
}
转载于:https://my.oschina.net/u/239298/blog/496977