ftp实现上传下载,解决了编码问题

 很多人都碰到ftp的上传下载文件的实现,很容易碰到一些问题,最难解决的是乱码的问题,
在网上搜索了挺多,也没人能讲得清楚详细的,这里把自己实现的程序贴出来,供大家参考。
以后碰到这些问题,可以自己多看看java的API,还是很有帮助的。
    另外在实现ftp上传下载的时候,还要多考虑一下上传下载失败或者网络连接断开的问题,
这需要不同情况不同的处理了,这里不作描述了。
    
    1> 解决乱码的关键
    FtpClient的默认编码格式ISO-8859-1,很多地方都提到了sun.net.NetworkClient类中的encoding属性,
能设置ftp的编码格式,但这个属性是不能直接访问的,可以通过继承FtpClient类的方式来访问;

 

/** *//**
 *
 * <p>Title: FtpOperation.java</p>
 * <p>Description: 为了改变FtpClient的默认编码格式ISO-8859-1为utf-8(或GBK)支持中文,实现了此类继承FtpClient</p>
 * <p>Copyright: Copyright (c) 2009</p>
 * <p>Company: </p>
 * @author
 * @version 1.0
 *
 */
public class CustomFtpClient extends FtpClient {

 private CustomFtpClient() {
  super();
 }
 /** *//**
  * 初始化时必须指定服务器的编码格式
  * @param encodingStr
  */
 protected CustomFtpClient(String encodingStr) {
  super();
  sun.net.NetworkClient.encoding = encodingStr;
 }

 /** *//**
  * 设置连接编码
  * @param encodingStr
  * void
  *
  */
 protected void setEncoding(String encodingStr) {
  sun.net.NetworkClient.encoding = encodingStr;
 }
 /** *//**
  * 取得编码格式
  * @return
  * String
  *
  */
 protected String getEncoding() {
  return sun.net.NetworkClient.encoding ;
 }
}

 

2. 这个类就是ftp上传下载的处理类,主要是注意对连接的处理和一些细节问题,也比较简单,就是要仔细点,这里不啰嗦了。


/** *//**
 *
 * <p>
 * Title: FtpUtils.java
 * </p>
 * <p>
 * Description: FTP相关的操作类,提供ftp登录、ftp上传文件、ftp下载文件等功能<br/>
 * 使用说明:<br/>
 * FtpUtil ftp = new FtpUtil("localhost", "test", "test", "GBK","test", 21); //初始化信息<br/>
 * ftp.connectServer();<br/>
 *    如果需要以ascii格式操作,要调用方法ftp.ftpClient.ascii();<br/>
 * **ftp的相关操作**<br/>
 * ftp.closeConnect();<br/>
 * </p>
 * <p>
 * Copyright: Copyright (c) 2009
 * </p>
 * <p>
 * Company:
 * </p>
 *
 * @author
 * @version 1.0
 *
 */
public class FtpUtil {

    private String serverIp = ""; // 服务器ip

    private String userName = ""; // 登录服务器用户名

    private String password = ""; // 登录服务器密码

    private String path = ""; // 服务器路径

    private int serverPort = -1; // 服务器端口号
   
    private String encoding = "GBK"; //服务器端编码格式

    protected CustomFtpClient ftpClient = null;

    OutputStream os = null;

    FileInputStream is = null;

    /** *//**
     * 构造函数,用配置文件asiainfo.properties中配置的ftp信息进行操作,
     * 需要设置服务器的编码格式PLANDEMO_FTP_ENCODING="GBK"(ftp服务器编码格式)。
     * @param encodingStr
     * @throws Exception
     */
    public FtpUtil() throws Exception {
        try {
            this.serverIp = Configure.getInstance().getProperty(
                    "PLANDEMO_FTP_SERVER"); // 默认服务器
            this.userName = Configure.getInstance().getProperty(
                    "PLANDEMO_FTP_USERNAME"); // 默认用户
            this.password = Configure.getInstance().getProperty(
                    "PLANDEMO_FTP_PASSWORD"); // 默认密码
            this.path = Configure.getInstance().getProperty("PLANDEMO_FTP_DIR"); // 默认路径
            this.e

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
木翼下载系统(MYDOWN)V4是一款专业的下载系统,它采用php书写,具有高效专业的特点。木翼下载系统是为下载型网站提供的解决方案。功能强大,简单易用,生成静态页面,支持Tag, 支持关键词搜索记录,支持可自定义扩展字段, 及其内容设定, 全面满足下载型网站的需求。 木翼下载系统(MYDOWN) 4.0 修正了几个影响正常使用的bug:2011-06-30 1.修正软件列表管理出现错误BUG. 2.修正采集管理出现错误BUG. 3.修正部分情况一键转帖页面缺少文件的BUG. 4.修正大文件上传个别情况存在的错误. 功能列表: 1.MYDOWN V4默认模板风格更换,全新制作. 2.添加下载中 下载权限设置:后台允许修改: “否 ”“是”的默认值(还有软件大小MB和KB等). 3.希望增加暂停下载软件的批量查询 4.栏目关键词和描述、软件关键词和描述 自定义功能增加. 5.默认软件的支持系统 希望增加 VISTA 和windows7 6.转移分类页软件页面的时候,如果要转移的页面有很多页。要花很长时间,一页一页全选。要是能一次选定所有就好了 7.首页的统计信息可以加入栏目统计 及按一定参数调用的数据统计. 8.默认友情链接在新建窗口打开 9.Google Sitemap处理进一步优化 10.软件分类/软件页面URL 功能加强 更利于SEO 11.后台管理日志记录的搜索功能. 12.增加模板函数: {nophp,\"不执行php内容\"} 13.增加模板函数:getvalue 可根据选择类型的字段值获取对应的名称. 14.后台登陆默认页增加 错误报告 最新评论数 15.允许将节点1的根目录(download)去除, 可直接生成在根目录下. 16.软件下载页 投一票 功能可放在[one] 的标签模板中, 方便位置显示调整. 17.增加关闭信息站的参数. 18.软件投一票功能 投票结果实现在页面中实时更新的功能. 19.后台管理批量管理功能的加强. 20.精简HTML静态页面的几种显示方式.(可仅选择). 21.前台下载页面显示可下载的权限组信息.(当软件有设置下载的用户组时) 22.列表动态排序页面 增加对当前选择排序方式的悬停功能(知道当前是按哪种方式排) 23.多镜像站点时上传软件同步上传到镜像点上.(需FTP模块支持) 24.增加软件上一条下一条标签. 25.Tag伪静态(可开启) 增加对SEO的优化处理. 26.添加专题时增加对\"下载专题目录名称\"进行文件or目录的判断 避免无扩展名文件的产生 27.修正表字段默认值(default) 及 创建节点时创建立默认表的信息. 28.增加手机软件下载二维码功能,可在后台开启/关闭. 29.支持目标站站点页面编码为utf-8的采集. 30.目标URL不存在或无法读取时自动跳过继续下一页面内容的采集. 31.采集完自动刷新分类统计数。 32.采集内容的替换符号修改成参数设置可自定义. 33.列表页能有列表开始范围与结束范围标签,以限定自己需要的标签。 34.列表页能限制排除自定义的不符合规则的地址。如排除含 .html 的,如排除包含网址/wenzhang/这样字符的. 35.修正生成HTML后花费时间显示错误的BUG 36.优化生成HTML页面效率,加快页面生成速度,减轻系统负载. 37.优化用户IP获取函数, 对使用代理访问的用户能获取最接近真实的IP地址. 38.文章评论增加文章页面内无刷新机制及盖楼功能. 39.增加快速推荐短标题软件/简述 定义 以及调用标签. 40.参数文件中增加开启/关闭参数: (默认)会员中心模板统一到节点1的会员中心模板. 41.改进UC接口参数设置方式, 可在后台直接进行设置. / 修改UC的config.inc.php 文件位置移至uc_client目录下. 42.更新UC接口程序至1.5.2版本的支持. 43.模板内容修改: 软件厂商主页{homepage}的调用,有内容时显示相应链接,没内容时显示\"暂无\". 44.增加多数标签的缓存参数cache. 45.游客发布/提交软件功能(后台审核). 46.增加每个节点的下载验证码开启参数 47.增加每个节点的游客发布软件开启参数 48.修正网站gzip压缩开启时 当页面内容输出内容过少时不显示的问题.(原输出内容需>2048) 49增加关于我们/广告联系/版权声明/下载帮助/等 模块页面. 模板内容可在后台编辑. 50TAG 的分隔符号 修改成可自定的.(默认为只使用\",\"做为分隔符号) 51.增加软件审核不通过时 的系统自定义预设项. 点击后即可自动添入相
协通XT800远程服务平台,适用于软件公司对客户的售后远程技术支持、运维公司对客户计算机的远程维护和管理,和大型或连锁企业IT对公司分支机构的集中IT管理与支持。 协通XT800无需公网IP和特殊网络配置,即可穿透防火墙、内网的限制。应用于为客户做远程技术支持、远程服务器管理、和公司分支机构或门店的远程运维和通讯。 远程控制:查看或控制远程电脑、邀请对方查看或控制我的电脑。 帐号、授权码访问机制,可在远程电脑前无人的情景下使用。 一对多或多对一多人同时远程连接;支持远程重启。 联系功能:联系人列表、文本会话、联系人IP、在线状态查看。 文件传输:支持大文件(夹)传输、共享、远程电脑文件管理。 功能详细介绍: 一、远程连接功能: 1. 查看或控制远程电脑。 2.邀请对方查看或控制我的电脑。 3无需公网IP和特殊网络配置,即可穿透防火墙的限制。 4.可通过TCP/IP实现直接LAN连接,软件也适合在无互联网连接的LAN中使用。 5.“支持多种方式连接远程电脑: 通过帐号和授权码方式连接远程电脑,无需对方确认,实例:服务器无人值守运维。 通过主动发起请求方式连接对方电脑,对方确认即可,实例:主动服务、运维客户。 通过对方主动发起请求方式连接,实例:客户请求协助”。 6. “支持多方同时连接: 支持一个客服同时远程连接多台电脑,实例:一个客服同时运维多台电脑。 支持多客服同时远程控制或共享桌面一台电脑,实例:多个客服协作诊断一个重要客户电脑;或培训场景”。 7.可查看远程计算机系统和软件安装信息,以及当前进程和窗口信息。 8.锁定对方的键盘、鼠标等输入设备:避免双方出现抢光标问题出现。 9.可作为Windows系统服务方式安装和运行。 10.支持远程重启计算机,并能够自动连接到网络(即使在未到登录Windows用户环境)。 11.支持远程计算机处于屏保、锁定状态下使用。 12.远程升级:远程一键自动升级并重连登录。 13.支持剪贴板同步,以及常用的Win组合键。 14.可自动缩放远程控制窗口、也可手动制定显示模式。 15.自适应网络状况,动态调节远控的画面质量,也可手动指定“画质优先”和“速度优先”等模式。 二、联系功能: 1.联系人列表:轻松管理所有联系人,支持分组管理,一点即可发起连接。 2.状态管理:可更改自己的当前状态、查看所有联系人的当前查看在线状态。 3.文本聊天:可发送在线或离线消息、并保持历史聊天记录。 4.查看在线联系人IP、版本信息和相关机器信息。 5.设置备注名:方便查找联系人。 6.满意度调查:服务结束后,向客户发起满意度调查,并得之反馈客户是否已提交。 三、文件传输和共享功能: 1.文件传输:大容量文件传输,并支持直接发送文件夹,支持断点续传。 2.灵活的文件接收设置:设置默认接收保存路径;设置接收文件是否需要确认等。 3.文件共享:可跨局域网建立类似Windows网上邻居的共享环境,并提供多种文件共享的安全策略,包括文件夹密码保护、按联系人关系或黑白名单等等。 4.远程文件管理功能:管理远程电脑文件,支持上传、下载目录和文件,删除、创建、重命名等操作,可替代传统的FTP服务。 5.文件传输记录保存:无论采用哪种方式发送或接收了任何文件,文件传输记录中均保存了详细记录。 安全性: 1.通讯数据基于SSL:RSA公开/私有密钥交换和AES 256位会话加密编码,属网银级别加密机制。 2.支持独立虚拟专用网络,安全隔离于公众网络(即便外部人员获得授权码,也无法连接和访问企业内部计算机)。 3.支持动态授权密码,每次运行时自动变换授权码,也可设置固定的私密授权码。 4.采用授权码和登录密码分离机制,并加密存储在用户本地计算机,强化安全保障。 5.灵活的黑、白名单安全策略:可自行控制被访问规则。 6.软件锁定功能:防止无人值守时被非法使用或篡改配置。 7.软件设置专用锁定功能:防止被修改授权码等其他安全配置。 可用性: 1.内置智能路由策略,能够最近的服务器,加快连接速度和数据转发效率。 2.常规在3-8秒内可连接。 3.自适应网络状况,动态调节远控的画面质量,提升操控的流畅度。 4.高达97%的P2P直连穿透率,优化传输速度。 5.自主研发的图像压缩及编解码技术,可有效减少带宽消耗及画面延迟。 6.消耗带宽小,公网环境下常规带宽需求2~30KB. 7.永久性的唯一伙伴ID,而不是会话ID (就像是QQ号码)。 8.国际键盘支持。 9.排列清晰的用户界面,可实现简单而快速的操作。 10.支持网络代理。 11.自动穿透操作系统的UAC限制,无需特殊设置(Vista/Win7/2008环境下)。 五、解决方案:(大型企业参考:协通XT800远程服务平台)。 1、可批量快速部署被控端、设定运维流程、指定运维关系、客服和客户管理、群发消息广播,增加便捷性和可控性。 2、快速部署的XT800远程助手版:可一键求助,企业品牌体现,提升品牌形象。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值