java中ftp文件上传和中文乱码解决
来源:互联网 发布:网络上的白云先生是谁 编辑:程序博客网 时间:2024/06/05 00:30
1.定义实体类
项目源码下载:https://pan.baidu.com/s/1eSMpxqq
package com.ftp;/** * ftp链接常量 * */public class Ftp {private String ipAddr;//ip地址private Integer port;//端口号private String userName;//用户名private String pwd;//密码private String path;//aaa路径public String getIpAddr() {return ipAddr;}public void setIpAddr(String ipAddr) {this.ipAddr = ipAddr;}public Integer getPort() {return port;}public void setPort(Integer port) {this.port = port;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}public String getPath() {return path;}public void setPath(String path) {this.path = path;}}
2.编写代码及测试。
package com.ftp;import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPFile;import org.apache.commons.net.ftp.FTPReply; import org.apache.log4j.Logger; public class Test { private static Logger logger=Logger.getLogger(Test.class); private static FTPClient ftp; /** * * @param path 上传到ftp服务器哪个路径下 * @param addr 地址 * @param port 端口号 * @param username 用户名 * @param password 密码 * @return * @throws Exception */ private boolean connect(String path,String addr,int port,String username,String password) throws Exception { boolean result = false; ftp = new FTPClient(); int reply; ftp.connect(addr,port); ftp.login(username,password); ftp.setFileType(FTPClient.BINARY_FILE_TYPE); reply = ftp.getReplyCode(); if (!FTPReply.isPositiveCompletion(reply)) { ftp.disconnect(); return result; } ftp.changeWorkingDirectory(path); result = true; return result; } /** * @ new String(file.getName().getBytes("GBK"), "iso-8859-1")解决乱码 * @param file 上传的文件或文件夹 * @throws Exception */ private void upload(File file) throws Exception{ if(file.isDirectory()){ ftp.makeDirectory(new String(file.getName().getBytes("GBK"), "iso-8859-1")); ftp.changeWorkingDirectory(new String(file.getName().getBytes("GBK"), "iso-8859-1")); String[] files = file.list(); for (int i = 0; i < files.length; i++) { File file1 = new File(file.getPath()+"\\"+files[i] ); if(file1.isDirectory()){ upload(file1); ftp.changeToParentDirectory(); }else{ File file2 = new File(file.getPath()+"\\"+files[i]); FileInputStream input = new FileInputStream(file2); ftp.storeFile(new String(file2.getName().getBytes("GBK"), "iso-8859-1") ,input); input.close(); } } }else{ File file2 = new File(file.getPath()); FileInputStream input = new FileInputStream(file2); ftp.storeFile(new String(file2.getName().getBytes("GBK"), "iso-8859-1"), input); input.close(); } } public static void main(String[] args) throws Exception{ Test t = new Test(); t.connect("/xxtest", "123.123.126.13", 21, "wangyu", "123123"); File file = new File("E:/哈哈"); t.upload(file); System.out.println("ok"); } }
项目源码下载:https://pan.baidu.com/s/1eSMpxqq
阅读全文
0 0
- java中ftp文件上传和中文乱码解决
- java中ftp文件上传和中文乱码解决
- java中ftp文件上传和中文乱码解决(一)
- java中ftp文件上传和中文乱码解决(二)
- java上传文件到ftp-解决中文乱码的问题
- java中ftp下载上传 解决中文文件上传下载中文乱码和文件上传失败下载文件为0kb
- FTP 文件上传 解决中文乱码
- java ftp文件上传中文乱码问题
- 解决,文件上传到 ftp 服务器,中文出现乱码问题
- Java中FTP文件上传下载中文文件乱码问题
- Java Web中使用JSPSmartUpload控件实现文件的上传和下载(解决了中文乱码问题)(JSP页面采用GBK编码)
- Java Web中使用JSPSmartUpload控件实现文件的上传和下载(解决了中文乱码问题)(JSP页面采用GBK编码)
- PHP-claroline中文文件上传乱码解决
- resteasy上传文件中文乱码解决
- 解决上传文件中文乱码问题
- 解决PHP上传文件中文乱码问题
- SmartUpload上传文件中文乱码解决
- FTP中文文件上传
- 基准测试移动 GPU 中的浮点精度
- Docker常用命令
- (九)php参考手册---http函数&表单与验证&会话处理
- Vue.js项目引入less文件报错解决
- git 撤销commit
- java中ftp文件上传和中文乱码解决
- Java代理模式及应用(二)静态代理与动态代理
- Java集合类详解
- Android原生Sqlite数据库设计
- 3 springboot 热部署问题
- css动画效果:鼠标移上去底部线条从中间往四周动画延伸
- 关于 10 个自增典型例题中例 7 的解释
- TitleButton
- HDU 1175 连连看 (DFS)