1。问题
在项目开发过程中,我们遇到了一些问题,比如上传文件中文名称乱码,无法自动创建指定的上传目录等。
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.sendCom***nd("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.***keDirectory(str); client.changeWorkingDirectory(str); } } }}
3。Application.java测试上传
public class Application { public static void ***in(String[] args) throws Exception { FtpUtil ftp = new FtpUtil(); ftp.initialize(); ftp.uploadFile("uploads", "W3School离线手册2017.chm", "F:\\ToolFile\\W3School离线手册2017.chm"); }}
4。中文乱码文件名解决方案
client.sendCom***nd("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.***keDirectory(str); client.changeWorkingDirectory(str); } }}
获得渊博的知识和崇高的道德的途径是如此之远,我将全心全意地从天堂到地狱去寻找它们。
在追求真理的道路上,前面的路还很长,但我会持之以恒,不遗余力地去追求和探索。
本文来自不择手段投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/517065.html