解决上次SFTP报错:org.apache.commons.net.MalformedServerReplyException: Could not parse respon; Server Reply: SSH-2.0-OpenSSH_5.3

原因:当使用org.apache.commons.net.ftp.FTPClient通过协议SSH2进行SFTP连接时报如上错误,原因是它不支持这种方式的连接

解决办法

使用                com.jcraft

<dependency><groupId>com.jcraft</groupId><artifactId>jsch</artifactId><version>0.1.49</version>
</dependency>
import com.jcraft.jsch.*;import java.io.*;
import java.util.Properties;public class FileUtil {//用户名private String username;//密码private String password;//ipprivate String host;//端口一般为22private int port;//私钥private String privateKey;ChannelSftp sftp = null;//通过构造方法传参public FileUtil(String username, String password, String host, int port){this.username = username;this.password = password;this.host = host;this.port = port;}public FileUtil(String username, String host, int port, String privateKey){this.username = username;this.host = host;this.port = port;this.privateKey = privateKey;}//登录,检查链接情况public void login(){try {JSch jSch = new JSch();if(privateKey != null){jSch.addIdentity(privateKey);}Session session = jSch.getSession(username,host,port);if(password != null){session.setPassword(password);}session.setTimeout(100000);Properties config = new Properties();config.put("StrictHostKeyChecking", "no");session.setConfig(config);session.connect();Channel channel = session.openChannel("sftp");channel.connect();sftp = (ChannelSftp) channel;System.out.println("登录成功");} catch (JSchException e) {e.printStackTrace();}}//上传文件/*** @param basePath 目标路径* @param direcotry 目标子路径* @param sftpFileName 文件名称*/ public void  upload(String basePath, String direcotry, String sftpFileName, InputStream inputStream) throws SftpException{try {//进入到目标目录sftp.cd(basePath);sftp.cd(direcotry);} catch (SftpException e) {String[] dirs = direcotry.split("/");String temPath = basePath;for (String dir: dirs) {if( null == dir || "".equals(dir)) continue;temPath +="/" + dir;try {sftp.cd(temPath);} catch (SftpException ex) {sftp.mkdir(temPath);sftp.cd(temPath);}}}sftp.put(inputStream,sftpFileName);System.out.println("上传成功");}//下载文件/*** @param directory 下载的文件路径* @param downloadFile 下载的文件名* @param saveFileDirectory 保存的文件路径*/public void download(String directory, String downloadFile, String saveFileDirectory) throws SftpException, FileNotFoundException{if(directory != null && !"".equals(directory)){sftp.cd(directory);}String saveFile = saveFileDirectory + "//" + downloadFile;File file = new File(saveFile);sftp.get(downloadFile, new FileOutputStream(file));System.out.println("下载成功");}//登出public static void main(String[] args) throws FileNotFoundException,SftpException {FileUtil fiel = new FileUtil("用户名","密码","host",22);fiel.login();     //测试上传功能File file = new File(图片地址);InputStream is = new FileInputStream(file);fiel.upload("上传目标目录","","文件名.xlxs",is);//测试下载功能try {fiel.download("下载目标目录","下载文件名","下载到的路径(本地服务器路径)");} catch (SftpException e) {e.printStackTrace();} catch (FileNotFoundException e) {e.printStackTrace();}}
}

解决上传SFTPorg.apache.commons.net.MalformedServerReplyException: Could not parse respon相关推荐

  1. Spring MVC-09循序渐进之文件上传(基于Apache Commons FileUpload)

    概述 客户端编程 MultipartFile接口 利用Commons FileUpload上传文件 Domain类 控制器 配置文件 JSP页面 部署及测试 源码 概述 Servlet出现之前,文件上 ...

  2. Java 文件上传组件 Apache Commons FileUpload 应用指南(二)——FileUpload如何工作?

    在最初的 http 协议中,没有上传文件方面的功能.RFC1867("Form-based File Upload in HTML".) 为 http 协议添加了这个功能.客户端的 ...

  3. 文件上传之Apache commons fileupload使用

    文件上传的方法主要目前有两个常用的,一个是SmartUpload,一个是Apache的Commons fileupload. 我们这里主要介绍下第二个的用法,首先要上传文件,注意几个问题: 1 for ...

  4. Java Web——文件上传(Apache Commons FileUpload实现上传图片DEMO)

    基本概念 Apache Commons FileUpload :Apache Commons FileUpload组件提供了一种简单而灵活的方法,可以将对多部分文件上传功能的支持添加到Servlet和 ...

  5. WEB文件上传之apache common upload使用(一)

    文件上传一个经常用到的功能,它有许多中实现的方案. 页面表单 + RFC1897规范 + http协议上传 页面控件(flash/html5/activeX/applet) + RFC1897规范 + ...

  6. WordPress解决上传文件大小限制问题

    WordPress解决上传文件大小限制问题 参考文章: (1)WordPress解决上传文件大小限制问题 (2)https://www.cnblogs.com/wangyi0419/p/1231376 ...

  7. 抛弃百度UMEditor,拥抱summernote (解决上传文件又慢又卡的问题)

    抛弃百度UMEditor,拥抱summernote (解决上传文件又慢又卡的问题) 参考文章: (1)抛弃百度UMEditor,拥抱summernote (解决上传文件又慢又卡的问题) (2)http ...

  8. Typora搭建图床解决上传md文档图片无法加载的问题

    Typora搭建图床||解决上传md文档图片无法加载的问题 写在前面 写下这篇文章的时候,据说好像是gitee官方禁止了图床上传方面的功能,我做了尝试是报了403错误,只能说错不在我咯,哈哈.所以说这 ...

  9. 高可用的Spring FTP上传下载工具类(已解决上传过程常见问题)

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:宇的季节 cnblogs.com/chenkeyu/p/80 ...

最新文章

  1. 病毒的灵魂拷问(绝对原创)
  2. django rest framework mixins小结
  3. nginx+redis多进程镜像制作
  4. 全球及中国膀胱癌药物行业“十四五”专项规划及市场调研分析报告2021-2027年
  5. Codeforces Round #740 (Div. 2) F. Top-Notch Insertions 线段树 / 平衡树 + 组合数学
  6. 【转】How to install VNC server on ubuntu 14.04
  7. 告诉你,为什么要娶物理系御姐?
  8. adb.exe可能被其他程序关闭_怎么快速的做自己小程序商城推广?
  9. 用户级线程和内核级线程
  10. 现实世界的Windows Azure:采访Transparencia Sp. z o.o的Grzegorz Skowron-Moszkowicz
  11. Github之深入解析如何在托管在不同系统的项目上使用Git客户端
  12. 古代奥运会创始人是谁?
  13. 比特大陆IPO之旅即将终结
  14. python 基于CQL操作neo4j数据库
  15. 服务器raid配置和安装系统,R390X G2服务器配板载RSTe阵列卡UEFI模式安装windows2008 R2系统典型配置...
  16. EditText自动弹出输入法问题
  17. 银行项目外包专题系列之二:公司没提升打杂,裸辞后收到银行外包,到底去还是不去
  18. GPS定位系统及协议介绍
  19. 破解Android app的过程记录
  20. flash播放器插件与flash播放器的区别

热门文章

  1. Entrust Datacard新一代再转印证卡打印机系列喜获蓝盾杯创新奖
  2. HRNet-v1模型,用于人体形态检测
  3. ASUS ROG Win10.21H1 x64专业工作站极速精简优化版
  4. 一图抵千言《ARouter简明扼要原理分析》
  5. JavaSE-day01
  6. C# 二维码 生成、解析
  7. 解惑篇|Docker和 K8s 到底啥关系?想学K8s,必须得先学 Docker 吗?
  8. 复习七天通过软考高级「系统架构师」,我是如何做到的
  9. Spring源码解析-bean实例化
  10. 福利来了 | 开发者社区布道师计划,奖品丰厚