最近用到SFTP上传文件查找了一些资料后自己做了一点总结,方便以后的查询。具体代码如下所示:
/**
* 将文件上传到服务器
*
* @param filePath
* 文件路径
* @param channelSftp
* channelSftp对象
* @return
*/
public static boolean uploadFile(String filePath, ChannelSftp channelSftp) {
OutputStream outstream = null;
InputStream instream = null;
boolean successFlag = false;
try {
File isfile = new File(filePath);
if (isfile.isFile()) {
outstream = channelSftp.put(isfile.getName());
File file = new File(filePath);
if (file.exists()) {
instream = new FileInputStream(file);
byte b[] = new byte[1024];
int n;
while ((n = instream.read(b)) != -1) {
outstream.write(b, 0, n);
}
outstream.flush();
}
successFlag = true;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (instream != null) {
instream.close();
}
if (outstream != null) {
outstream.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return successFlag;
}
private static Session initJschSession()
throws JSchException {
int ftpPort = 0;
String ftpHost = "";
String port = "00"; //sftp的端口号
String ftpUserName = ""; //用户名
String ftpPassword = ""; //链接的密码
String privateKey = ""; //
String passphrase = "";
if (port != null && !port.equals("")) {
ftpPort = Integer.valueOf(port);
}
JSch jsch = new JSch(); // 创建JSch对象
if (StringUtils.isNotBlank(privateKey)
&& StringUtils.isNotBlank(passphrase)) {
jsch.addIdentity(privateKey, passphrase);
}
if (StringUtils.isNotBlank(privateKey)
&& StringUtils.isBlank(passphrase)) {
jsch.addIdentity(privateKey);
}
jsch.getSession(ftpUserName, ftpHost, ftpPort);
Session session = jsch.getSession(ftpUserName, ftpHost, ftpPort); // 根据用户名,主机ip,端口获取一个Session对象
if (StringUtils.isNotBlank(ftpPassword)) {
session.setPassword(ftpPassword); // 设置密码
}
return session;
}
/**
* 获取ChannelSftp链接
*
* @param timeout
* 超时时间
* @return 返回ChannelSftp对象
* @throws JSchException
*/
public static ChannelSftp getChannelSftp(Session session, int timeout)
throws JSchException {
Channel channel = null;
Properties config = new Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config); // 为Session对象设置properties
session.setTimeout(timeout); // 设置timeout时间
session.connect(); // 通过Session建立链接
channel = session.openChannel("sftp"); // 打开SFTP通道
channel.connect(); // 建立SFTP通道的连接
return (ChannelSftp) channel;
}
/**
* 断开sftp链接
*
* @param session
* 会话
* @param channel
* 通道
*/
public static void closeConnection(Channel channel, Session session) {
try {
if (session != null) {
session.disconnect(); //关闭session链接
}
if (channel != null) {
channel.disconnect(); //断开连接
}
} catch (Exception e) {
e.printStackTrace();
}
}
这里的用户名密码都是自己设置,这里的方法进行了简单的封装,方便使用。
以上所述是小编给大家介绍的Java使用SFTP上传文件到服务器的简单使用,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# 使用sftp上传文件
# sftp服务器
# Java实现读取SFTP服务器指定目录文件的方法
# Java连接sftp服务器实现上传下载功能
# Java连接服务器的两种方式SFTP和FTP
# 详解Java使用Jsch与sftp服务器实现ssh免密登录
# java使用SFTP上传文件到资源服务器
# Java 项目连接并使用 SFTP 服务的示例详解
# 小编
# 上传文件
# 都是
# 在此
# 给大家
# 找了
# 所示
# 所述
# 给我留言
# 感谢大家
# 进行了
# 文件上传
# 端口号
# 疑问请
# 有任何
# file
# exists
# put
# FileInputStream
# getName
相关文章:
如何通过NAT技术实现内网高效建站?
早安海报制作网站推荐大全,企业早安海报怎么每天更换?
魔方云NAT建站如何实现端口转发?
建站主机是否等同于虚拟主机?
建站之星如何助力网站排名飙升?揭秘高效技巧
建设网站制作价格,怎样建立自己的公司网站?
Python lxml的etree和ElementTree有什么区别
如何在万网主机上快速搭建网站?
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
岳西云建站教程与模板下载_一站式快速建站系统操作指南
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?
零服务器AI建站解决方案:快速部署与云端平台低成本实践
建站主机选哪种环境更利于SEO优化?
建站之星如何快速解决建站难题?
创业网站制作流程,创业网站可靠吗?
开封网站制作公司,网络用语开封是什么意思?
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
常州自助建站:操作简便模板丰富,企业个人快速搭建网站
电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?
孙琪峥织梦建站教程如何优化数据库安全?
定制建站价位费用解析与套餐推荐全攻略
大同网页,大同瑞慈医院官网?
企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?
三星网站视频制作教程下载,三星w23网页如何全屏?
深圳网站制作的公司有哪些,dido官方网站?
如何选择建站程序?包含哪些必备功能与类型?
如何挑选高效建站主机与优质域名?
建站主机选哪家性价比最高?
制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?
建站之星好吗?新手能否轻松上手建站?
如何快速查询网址的建站时间与历史轨迹?
网站制作知乎推荐,想做自己的网站用什么工具比较好?
php条件判断怎么写_ifelse和switchcase的使用区别【对比】
高防服务器租用指南:配置选择与快速部署攻略
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
已有域名和空间如何快速搭建网站?
如何快速登录WAP自助建站平台?
C++如何将C风格字符串(char*)转换为std::string?(代码示例)
网站制作的步骤包括,正确网址格式怎么写?
c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】
建站之星多图banner生成与模板自定义指南
盐城做公司网站,江苏电子版退休证办理流程?
建站之星ASP如何实现CMS高效搭建与安全管理?
网站制作多少钱一个,建一个论坛网站大约需要多少钱?
相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?
网站图片在线制作软件,怎么在图片上做链接?
*请认真填写需求信息,我们会在24小时内与您取得联系。