解决上传SFTPorg.apache.commons.net.MalformedServerReplyException: Could not parse respon
解决上次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相关推荐
- Spring MVC-09循序渐进之文件上传(基于Apache Commons FileUpload)
概述 客户端编程 MultipartFile接口 利用Commons FileUpload上传文件 Domain类 控制器 配置文件 JSP页面 部署及测试 源码 概述 Servlet出现之前,文件上 ...
- Java 文件上传组件 Apache Commons FileUpload 应用指南(二)——FileUpload如何工作?
在最初的 http 协议中,没有上传文件方面的功能.RFC1867("Form-based File Upload in HTML".) 为 http 协议添加了这个功能.客户端的 ...
- 文件上传之Apache commons fileupload使用
文件上传的方法主要目前有两个常用的,一个是SmartUpload,一个是Apache的Commons fileupload. 我们这里主要介绍下第二个的用法,首先要上传文件,注意几个问题: 1 for ...
- Java Web——文件上传(Apache Commons FileUpload实现上传图片DEMO)
基本概念 Apache Commons FileUpload :Apache Commons FileUpload组件提供了一种简单而灵活的方法,可以将对多部分文件上传功能的支持添加到Servlet和 ...
- WEB文件上传之apache common upload使用(一)
文件上传一个经常用到的功能,它有许多中实现的方案. 页面表单 + RFC1897规范 + http协议上传 页面控件(flash/html5/activeX/applet) + RFC1897规范 + ...
- WordPress解决上传文件大小限制问题
WordPress解决上传文件大小限制问题 参考文章: (1)WordPress解决上传文件大小限制问题 (2)https://www.cnblogs.com/wangyi0419/p/1231376 ...
- 抛弃百度UMEditor,拥抱summernote (解决上传文件又慢又卡的问题)
抛弃百度UMEditor,拥抱summernote (解决上传文件又慢又卡的问题) 参考文章: (1)抛弃百度UMEditor,拥抱summernote (解决上传文件又慢又卡的问题) (2)http ...
- Typora搭建图床解决上传md文档图片无法加载的问题
Typora搭建图床||解决上传md文档图片无法加载的问题 写在前面 写下这篇文章的时候,据说好像是gitee官方禁止了图床上传方面的功能,我做了尝试是报了403错误,只能说错不在我咯,哈哈.所以说这 ...
- 高可用的Spring FTP上传下载工具类(已解决上传过程常见问题)
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:宇的季节 cnblogs.com/chenkeyu/p/80 ...
最新文章
- 病毒的灵魂拷问(绝对原创)
- django rest framework mixins小结
- nginx+redis多进程镜像制作
- 全球及中国膀胱癌药物行业“十四五”专项规划及市场调研分析报告2021-2027年
- Codeforces Round #740 (Div. 2) F. Top-Notch Insertions 线段树 / 平衡树 + 组合数学
- 【转】How to install VNC server on ubuntu 14.04
- 告诉你,为什么要娶物理系御姐?
- adb.exe可能被其他程序关闭_怎么快速的做自己小程序商城推广?
- 用户级线程和内核级线程
- 现实世界的Windows Azure:采访Transparencia Sp. z o.o的Grzegorz Skowron-Moszkowicz
- Github之深入解析如何在托管在不同系统的项目上使用Git客户端
- 古代奥运会创始人是谁?
- 比特大陆IPO之旅即将终结
- python 基于CQL操作neo4j数据库
- 服务器raid配置和安装系统,R390X G2服务器配板载RSTe阵列卡UEFI模式安装windows2008 R2系统典型配置...
- EditText自动弹出输入法问题
- 银行项目外包专题系列之二:公司没提升打杂,裸辞后收到银行外包,到底去还是不去
- GPS定位系统及协议介绍
- 破解Android app的过程记录
- flash播放器插件与flash播放器的区别