解决ftp下载文件名乱码问题

原来用的是sun.net.ftp.FtpClient jar包,在java project中能解决乱码问题,在java web项目中未找到解决方案

现在改用org.apache.commons.net.ftp.FTPClient jar包,可以正常下载


public  boolean downFile(String fileName) {    
        boolean success = false;    
        FTPClient ftp = new FTPClient();    
        try {    
            int reply;    
            ftp.connect(ip, port);    
            //如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器     
            ftp.login(username, password);//登录     
            reply = ftp.getReplyCode();    
            if (!FTPReply.isPositiveCompletion(reply)) {    
                ftp.disconnect();    
                return success;    
            }    
            ftp.changeWorkingDirectory(path);//转移到FTP服务器目录     
            FTPFile[] fs = ftp.listFiles();   
            ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
//            System.out.println(new String(fileName.getBytes("iso-8859-1"), "iso-8859-1")+"###");
            for(FTPFile ff:fs){ 
            	String f= new String(ff.getName().getBytes("iso-8859-1"), "utf-8");
                if(f.equals(fileName)){  
                    File localFile = new File(disk+"/"+f);    
                    OutputStream is = new FileOutputStream(localFile);     
                    ftp.retrieveFile(ff.getName(), is);    
                    is.close();    
                }    
            }    
                
            ftp.logout();    
            success = true;    
        } catch (IOException e) {    
            e.printStackTrace();    
        } finally {    
            if (ftp.isConnected()) {    
                try {    
                    ftp.disconnect();    
                } catch (IOException ioe) {    
                }    
            }    
        }    
        return success;    
    }  

原来用的sun.net.ftp.FtpClient jar包,java app项目没有乱码,java web项目乱码未找到解决方案

现在改为org.apache.commons.net.ftp.FTPClient jar包,文件名乱码问题已解决



  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值