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

来源:互联网 发布:淘宝网怎么买罂粟种子 编辑:程序博客网 时间:2024/06/05 22:35

原来用的是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包,文件名乱码问题已解决