springboot如何通过集成ftp实现文件上传
发表于:2025-01-17 作者:千家信息网编辑
千家信息网最后更新 2025年01月17日,这篇文章主要为大家展示了"springboot如何通过集成ftp实现文件上传",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"springboot如何通过集成
千家信息网最后更新 2025年01月17日springboot如何通过集成ftp实现文件上传3、UploadController
这篇文章主要为大家展示了"springboot如何通过集成ftp实现文件上传",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"springboot如何通过集成ftp实现文件上传"这篇文章吧。
1、FileUtil
package io.renren.modules.oss.utils;import org.apache.commons.net.ftp.FTPClient;import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Component;import org.springframework.util.StringUtils;import java.io.IOException;import java.io.InputStream;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Date;@Componentpublic class FileUtil { //ftp服务器ip地址 @Value("${custom.config.file-server.ip}") // 相关配置放在application.properties 中 String FTP_ADDRESS; //端口号 @Value("${custom.config.file-server.port}") Integer FTP_PORT; //用户名 @Value("${custom.config.file-ftp-user}") String FTP_USERNAME; //密码 @Value("${custom.config.file-ftp-password}") String FTP_PASSWORD; //图片路径 @Value("${custom.config.file-savepath}") String FTP_BASEPATH; //根据当前文件生成 文件夹 private static String getTimePath() { Date now = new Date(); DateFormat format = new SimpleDateFormat("yyyy/MM/dd/"); return format.format(now); } public String upload(InputStream inputStream, String originName) { StringBuilder url = new StringBuilder(); FTPClient ftp = new FTPClient(); ftp.setControlEncoding("GBK"); try { int reply; ftp.connect(FTP_ADDRESS, FTP_PORT);// 连接FTP服务器 ftp.login(FTP_USERNAME, FTP_PASSWORD);// 登录 reply = ftp.getReplyCode(); System.out.println("reply:" + reply); ftp.enterLocalPassiveMode();//开启被动模式,否则文件上传不成功,也不报错 String timePath = getTimePath(); String saveDir = FTP_BASEPATH + timePath; url.append(saveDir); ftp.setFileType(FTPClient.BINARY_FILE_TYPE); createDir(ftp, saveDir); //ftp.makeDirectory(saveDir); // ftp.changeWorkingDirectory(FTP_BASEPATH); originName= System.currentTimeMillis()+originName.substring(originName.lastIndexOf('.')); url.append(originName); ftp.storeFile(originName, inputStream); inputStream.close(); ftp.logout(); } catch (IOException e) { throw new RuntimeException("文件上传失败"); } finally { if (ftp.isConnected()) { try { ftp.disconnect(); } catch (IOException ioe) { } } } return url.toString(); } // 创建文件夹,并切换到该文件夹 // 比如: hello/test //最终会切换到test 文件夹返回 private void createDir(FTPClient client, String path) throws IOException { String[] dirs = path.split("/"); for (String dir : dirs) { if (StringUtils.isEmpty(dir)) { continue; } if (!client.changeWorkingDirectory(dir)) { client.makeDirectory(dir); } client.changeWorkingDirectory(dir); } }}
2、application.properties
#//ftp服务器ip地址custom.config.file-server.ip=111.229.65.208#String FTP_ADDRESS;#//端口号custom.config.file-server.port=21#Integer FTP_PORT;#//用户名custom.config.file-ftp-user=root#String FTP_USERNAME;#//密码custom.config.file-ftp-password=123456#String FTP_PASSWORD;#//图片路径custom.config.file-savepath=/upload#String FTP_BASEPATH;
3、UploadController
/** * 上传文件 */String fileUrl = fileUtil.upload(file.getInputStream(), file.getOriginalFilename());
得到路径:/upload2020/11/23/1606122890137.jpg
4、ftp查看
以上是"springboot如何通过集成ftp实现文件上传"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
文件
文件夹
内容
服务器
篇文章
路径
服务
口号
图片
地址
密码
用户
用户名
切换
学习
帮助
成功
易懂
更多
条理
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网页显示表格数据库
广西网络安全测评
关于网络安全的主题团会表演
台风山竹的大数据库
数据库架构各个层次网络
db2数据库 等于null
网络技术 前景
互联网与科技作文
数据库系统工程师 培训
新泽仪器数据库密码
禅道怎么换本地数据库
松江区网络技术服务产品
软件开发 效率性
股票软件开发面试
九江 网络安全公司
网络安全技术应用教案
岳阳拓维网络技术有限公司
链家网软件开发招聘信息
数据库数据字典怎么写
php 自定义表单数据库
大华视频服务器怎么分摄像头
惠州服务器租用
湖北软件开发包括哪些东西
新浪网络技术股份有限公司
南昌诚推网络技术
中至服务器
机场集团网络安全领导小组
2003国家网络安全战略
超级人类注册时服务器满三吗
鲑鱼服务器