最近用到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
相关文章:
如何在IIS中新建站点并配置端口与IP地址?
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
如何在阿里云虚拟服务器快速搭建网站?
如何用景安虚拟主机手机版绑定域名建站?
建站上传速度慢?如何优化加速网站加载效率?
建站之星微信建站一键生成小程序+多端营销系统
如何安全更换建站之星模板并保留数据?
网站制作难吗安全吗,做一个网站需要多久时间?
如何解决VPS建站LNMP环境配置常见问题?
高端建站三要素:定制模板、企业官网与响应式设计优化
家庭服务器如何搭建个人网站?
C++如何使用std::optional?(处理可选值)
如何在Tomcat中配置并部署网站项目?
建站之星如何快速解决建站难题?
网站制作服务平台,有什么网站可以发布本地服务信息?
制作网站怎么制作,*游戏网站怎么搭建?
北京专业网站制作设计师招聘,北京白云观官方网站?
网站网页制作专业公司,怎样制作自己的网页?
我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
英语简历制作免费网站推荐,如何将简历翻译成英文?
如何快速搭建高效WAP手机网站吸引移动用户?
如何选择建站程序?包含哪些必备功能与类型?
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
沈阳制作网站公司排名,沈阳装饰协会官方网站?
如何在企业微信快速生成手机电脑官网?
武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?
如何通过IIS搭建网站并配置访问权限?
Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解
c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】
公司网站制作价格怎么算,公司办个官网需要多少钱?
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
Android自定义listview布局实现上拉加载下拉刷新功能
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
已有域名和空间如何快速搭建网站?
如何在Golang中使用replace替换模块_指定本地或远程路径
如何挑选最适合建站的高性能VPS主机?
C#如何序列化对象为XML XmlSerializer用法
怎么将XML数据可视化 D3.js加载XML
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
如何通过VPS建站实现广告与增值服务盈利?
武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?
如何用y主机助手快速搭建网站?
网站制作价目表怎么做,珍爱网婚介费用多少?
企业网站制作公司网页,推荐几家专业的天津网站制作公司?
如何在阿里云高效完成企业建站全流程?
股票网站制作软件,网上股票怎么开户?
专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?
如何获取PHP WAP自助建站系统源码?
*请认真填写需求信息,我们会在24小时内与您取得联系。