ChannelSftp下载文件含有中文名称的解决办法

Java中通过sftp协议实现上传下载 在java开发中,遇到需要将linux系统中指定目录下的文件下载到windows本地的需求,下面聊聊通过sftp协议实现上传和下载。 阅读详情

问题描述

项目里有一功能,要从FTP上上传或者下载文件,使用的是ChannelSftp来完成任务,jar包为com.jcraft.jsch_0.1.31.jar,一直运行稳定,直到有一天下载一个中文名称的文件却发现文件大小为0KB。

问题分析

  1. 尝试把文件名称各种编码再传参不好使。
  2. 查看源码发现根本没有指定文件编码的方法。
  3. 去官网下载一个最新的jar包jsch-0.1.54.jar,查看源码发现有了setFilenameEncoding()这个方法,估计是老版本的jar的bug被修复了。然而进一步查看这个方法
    这里写图片描述
    源码表明如果使用的版本在3-5的jar包只能用utf-8编码,不能改。此时如果想修改编码可以用反射修改server_version字段的值,使其满足else下方的条件。

问题解决

换个新jar包,不用设置setFilenameEncoding()。

单session多channel的sftp多线程并发下载 依赖 <!--sFTP连接--> <dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version>0.1.53</version> </dependency> import com.jcraft.jsch.*; 连接 使用ThreadLocal管理channel,确... 阅读详情

相关推荐

jsch-0.1.53 使用sftp协议上传下载文件名中文乱码解决办法

jsch-0.1.53 不支持修改编码格式,sftp.setFilenameEncoding("GBK");这样修改是不起作用的,所以必须修改源码。此处是修改源码后重新导出的jar包。

ChannelSftp 使用教程

ChannelSftp 是 JSch 库中的一个类,它提供了一个连接和操作 SFTP 服务器的通道。需要注意的是,以上示例代码只是一些基本的使用示例,实际应用中可能需要更多的异常处理和错误监测来保证程序的正确性和鲁棒性。此代码将在 SFTP 服务器上创建一个名为 "remote/directory/path" 的新目录。此代码将从 SFTP 服务器上删除名为 "remote/file/path" 的文件。此代码将更改 SFTP 服务器上的 "remote/file/path" 文件的权限。

qq_39827935的博客 6021

2.设置Salesforce开发环境

Salesforce DX:salesforce Developer Experience (salesforce开发人员体验)LWC:Lightning Web Component(注意首字母是大写的,是一个概念,小写的话有组件本身的含义)CLI:Command Line Interface(命令行界面)version control system (VCS):版本控制系统。

nihaixiao的博客 2198

从sftp下载文件

sftp下载文件

qq_33460264的博客 3298

初识Classic AUTOSAR开发工具链

在过去,软件和硬件之间具有很强的耦合性,阻碍了软件组件在不同硬件平台上的可移植性和重用性。而AUTOSAR作为汽车电子行业的标准,提供标准的软件接口定义,工程师可以根据需求将软件组件分配到汽车的ECU中,实现标准软件组件的可重用性。

怿星科技的博客 8095

从DC到DCG:手把手教你搭建物理感知综合流程(含DEF文件处理避坑指南)

本文详细介绍了从Design Compiler(DC)过渡到DC Topographical(DCT)和DC Graphical(DCG)的完整操作框架,特别针对DEF文件处理提供避坑方案。通过环境准备、工具升级、DEF文件处理、DCG综合配置等步骤,帮助开发者高效应对28nm以下工艺节点的物理感知综合挑战,显著提升时序收敛效率。

weixin_27966471的博客 381

java技术用ssh从linux服务器下载数据

通常需要从linux服务器获取数据文件,而通常能有的访问方式只有ssh,所以就可以用ssh进行数据下载。 java连接远程主机的方式有多种,这里和大家分享的是通过ssh方式连接远程主机,使用的是jsch这个jar包,资源在这里。 package com.app.pt.backup.util; import java.io.File; import java.io.FileIn...

weixin_30872867的博客 222

【UE4】PMC程序化生成戈德堡多面体详解(六边形星球)

游戏实机录屏 【魔方超新星】30天独立开发PCG Minigame《盖亚计划》作品展示,尚有不足,大佬轻喷 目录 游戏实机录屏 一、简介 二、设计思路 2.1 Disco Ball 2.2 Fibonacci Sphere 2.3 Goldberg Polyhedron 2.3.1 细分+对偶(最终方案) 2.3.2 对偶+截角(更优) 三、参考文献 一、简介 在制作Minigame初期,游戏风格想模仿《文明6》与《Polygonal Planet Proje...

ColorGalaxy 5932

java ssh文件下载_java 通过SSH方式连接远程主机并上传和下载文件

java连接远程主机的方式有多种,这里和大家分享的是通过ssh方式连接远程主机,使用的是jsch这个jar包,资源在这里。不懂ssh为何物的朋友可以从网上找找相关资料,这里只简单的解释下:SSH 为 Secure Shell(安全外壳协议) 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定,为建立在应用层和传输层基础上的安全协议。SSH在传输层提供服务器认证...

weixin_29813635的博客 577

HyperLynx VX2.5 实战:5分钟搞定LPDDR4X内存的批量仿真与报告分析

本文详细介绍了如何使用HyperLynx VX2.5进行LPDDR4X内存的批量仿真与报告分析,通过智能网络分组和并行计算技术,5分钟内即可完成全流程验证。文章涵盖工程准备、批量仿真配置、报告解析及典型问题解决方案,帮助工程师高效提升PCB仿真效率,确保移动设备内存接口的稳定性与性能。

weixin_42683394的博客 402

DVT Eclipse保姆级入门教程(一)

介绍 waokspace工作区 是Eclipse平台、已安装插件的存储、配置和临时信息的首选项 在工作区可以定义项目,但不需要将源文件导入或者复制到工作区中,可以在项目中指向任何文件夹或者文件; 路径都不要出现中文; 每次启动Eclipse时,都可以创建一个新的工作空间或指定一个现有的工作空间目录; 可以创建许多工作区,每个工作区专用于某种活动。 project项目 首次创建项目时,Eclipse平台会在你指定的目录中创建一个.project项目。 一些插件可能会在项目目录中创建其他信息,例如DVT创

SummerXRT的博客 1万+

java ssh linux 文件_java技术用ssh从linux服务器下载数据

packagecom.app.pt.backup.util;importjava.io.File;importjava.io.FileInputStream;importjava.io.InputStream;importjava.io.UnsupportedEncodingException;importjava.util.Iterator;importjava.util.Vector;impo...

weixin_36302331的博客 188

Android 14.0 SystemUI下拉通知栏通知去掉长按事件

在14.0的系统rom产品定制化开发中,在systemui模块中关于下拉状态栏这块也是非常重要的部分,最近在关于systemui下拉通知栏的每条通知部分 要求去掉通知栏通知的长按事件,不需要长按功能,所以就需要分析下关于长按事件是在哪里注册的,然后去掉就可以了,接下来分析实现 相关功能

安卓兼职framework和app工程师的博客 277

java 通过SSH方式连接远程主机并上传和下载文件

java连接远程主机的方式有多种,这里和大家分享的是通过ssh方式连接远程主机,使用的是jsch这个jar包,资源在这里。     不懂ssh为何物的朋友可以从网上找找相关资料,这里只简单的解释下:SSH 为 Secure Shell(安全外壳协议) 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定,为建立在应用层和传输层基础上的安全协议。SSH在传输层提

Bolin 8800

秋招突击——笔试整理——8/25——拼多多笔试整理

继续加油! 转变思维,有简单到复杂,由直观到抽象,这种贪心模拟的题目一直是这样的!

Blackoutdragon的博客 2401

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

JAVA下载中文名异常问题

String agent = request.getHeader("User-Agent"); boolean isMSIE = (StringTools.hasText(agent) && agent.toUpperCase() .indexOf("MSIE") != -1); // ie10以上的user agent中不再带有msie字符, boolean isIE...

aroon2008的博客 227

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

ChannelSftp上传和下载文件

上传和下载文件到服务器

weixin_55733979的博客 1403

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

java- SFTP文件上传下载

JSch实现 SFTP实现文件上传、下载、进度监控等功能

weixin_44783506的博客 8440

sftp链接远程服务器、ChannelSftp的坑、ChannelSftp.ls()在windows系统下性能缓慢的说明

背景说明 我们在项目开发中,经常会使用sftp链接方式对远程文件进行下载。一般是先判断远程服务器上是否有该文件,若有,则下载;若没有,则不做处理。 在一次项目开发中使用com.jcraft.jsch.ChannelSftp.ls(String path)方法判断文件是否存在,一开始项目正常运行,但是运行一段时间后ls()性能特别缓慢, 由此引发了对ls方法的研究。 问题定位 经过问题排查后,发现ls()方法调用一次花费了40秒,之前每次都是零点几秒的。再次深入排查,发现随着时间增加,该目录下的文件会越来越多

weixin_49114503的博客 4032

jsch实现sftp服务器的文件时上传下载

JSch是Java Secure Channel的缩写。JSch是一个SSH2的纯Java实现。它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等,当然你也可以集成它的功能到你自己的应用程序。   本文只介绍如何使用JSch实现的SFTP功能。   SFTP是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供

797

日常记录:ChannelSftp实现文件上传下载

Java ChannelSftp实现文件上传下载 宗旨 本文介绍ChannelSftp通过SFTP协议,进行文件的上传下载等功能,旨在提升自身能力。同时,对阅读本文的小伙伴提供一定帮助,有错误的地方欢迎指出。如有转载,请标明原文地址。 简介 ChannelSftp类可以使用SFTP协议,在传输过程中,通过加密操作,使得传输的数据相比于FTP协议更加安全。但是,安全性的提高,也导致性能的下降。在日常...

qq_36248731的博客 8693

JSch - Java实现的SFTP(文件下载详解篇)

上一篇讲述了使用JSch实现文件上传的功能,这一篇主要讲述一下JSch实现文件下载的功能。并介绍一些SFTP的辅助方法,如cd,ls等。   同样,JSch的文件下载也支持三种传输模式:OVERWRITE, RESUME和APPEND,请参考上篇随笔:JSch - Java实现的SFTP(文件上传详解篇)   文件下载    

awj321000的专栏 884

JAVA实现SFTP

JSch是Java Secure Channel的缩写。JSch是一个SSH2的纯Java实现。它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等,当然你也可以集成它的功能到你自己的应用程序。 本文只介绍如何使用JSch实现的SFTP功能。 SFTP是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法。SFTP 为 SSH的一部份,是一种传输文件到服务器的安全方式。SFTP是使用加密传输认证信息和传输...

u011010220的博客 5906

java中JSch,ChannelSftp,Session,SFTP

Session是会话,比如打电话,从拨号到挂断这就是一个Session;Channel是通道,我的理解是比如打电话时,Channel表示是使用联通信号或者是移动信号或者是电信信号。 JSch是Java Secure Channel的缩写 JSch是一个SSH2的纯Java实现。它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等,当然你也可以集成它的功能到你自己的应用程序。 SFTP是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提

java 开发 3121

Java使用sftp协议上传、下载文件

使用sftp协议上传、下载文件

m0_53434091的博客 2564
上一篇: python requests post方式抓取公开数据-示例
下一篇: 插入大数据量方法-MySQL
sand_clock
博客等级 码龄11年 66粉丝 89原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值