java大文件上传插件(java附件上传功能实现)

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); } }}

路漫漫其修远兮,吾将上下而求索

译文:在追寻真理方面,前方的道路还很漫长,但我将百折不挠,不遗余力地去追求和探索。

(0)
打赏 微信扫一扫 微信扫一扫

相关推荐

本文内容由互联网用户自发贡献,该文观点仅代表作者本人,不代表万网时代立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 qulianxi@foxmail.com 举报,一经查实,本站将立刻删除。