登录|注册|帮助中心|联系我们

导航
首页 综合百科 生活常识 数码科技 明星名人 传统文化 互联网 健康 影视 美食 教育 旅游 汽车 职场 时尚 运动 游戏 家电 地理 房产 金融 节日 服饰 乐器 歌曲 动物 植物
当前位置:首页 > 互联网

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

发布时间:2022年12月25日责任编辑:林大生标签: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); ???????} ???}}
?

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

?

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

其它知识推荐

溜溜百科知识网——分享日常生活学习工作各类知识。 垃圾信息处理邮箱 tousu589@163.com
icp备案号 闽ICP备14012035号-2 互联网安全管理备案 不良信息举报平台 Copyright 2023 www.6za.net All Rights Reserved