文章插图
文章插图
1、问题在项目开发过程中 , 遇到需要将页面上选择的文件上传至FTP服务器 , 遇到一些坑 , 比如上传文件中文名乱码 , 上传时指定上传目录不能自动创建等问题 。
2、FTP上传文件工具类
public class FtpUtil {private String hostname = "xxx";private Integer port = 21 ;private String username = "xxx";private String password = "xxx";private FTPClient client = null;public String initialize() throws Exception{client = new FTPClient();client.setControlEncoding("utf-8");client.connect(hostname, port);client.login(username, password);int replyCode = client.getReplyCode();if(!FTPReply.isPositiveCompletion(replyCode))return "Connect ftp failed";return "success";}public String uploadFile(String storePath, String fileName, String uploadFile) throws Exception {InputStream stream = new FileInputStream(new File(uploadFile));client.setFileType(client.BINARY_FILE_TYPE);this.prepareStorePath(client, storePath);client.sendCommand("OPTS UTF8", "ON");client.storeFile(fileName, stream);if (client.storeFile(fileName, stream))return "Upload file success";return "Upload file failed";}private void prepareStorePath(FTPClient client, String storePath) throws Exception{String[] split = storePath.split("\\\\");for (String str : split) {if (StringUtils.isBlank(str))continue;if (!client.changeWorkingDirectory(str)) {client.makeDirectory(str);client.changeWorkingDirectory(str);}}}}
3、Application.java测试上传public class Application {public static void main(String[] args) throws Exception {FtpUtil ftp = new FtpUtil();ftp.initialize();ftp.uploadFile("uploads", "W3School离线手册2017.chm", "F:\\ToolFile\\W3School离线手册2017.chm");}}
4、文件名中文乱码解决办法client.sendCommand("OPTS UTF8", "ON");
5、指定文件存储目录不能创建解决办法private void prepareStorePath(FTPClient client, String storePath) throws Exception{String[] split = storePath.split("\\\\");for (String str : split) {if (StringUtils.isBlank(str))continue;if (!client.changeWorkingDirectory(str)) {client.makeDirectory(str);client.changeWorkingDirectory(str);}}}
路漫漫其修远兮 , 吾将上下而求索
【Java上传大文件 java 大文件上传解决方案】译文:在追寻真理方面 , 前方的道路还很漫长 , 但我将百折不挠 , 不遗余力地去追求和探索 。
- 大葱炒腊肉的做法是什么?
- 男人不爱你的三大表现 男人不相信你的表现
- 养生午班车 秋季饭后做这事给大脑快速充电
- 八大黄金养生点 科学作息更健康
- js date比较大小 js比较日期字符串大小
- 喝蜂蜜水有什么好处呢
- java项目中遇到的技术难题 java技术难题
- 孕妇能吃红果吗
- 套路女朋友真心话套路大全,拂面笑面还深藏
- 整蛊男朋友套路大全,撩男友不停歇