• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

springboot集成ftp实现文件上传

springboot 搞代码 4年前 (2022-01-05) 23次浏览 已收录 0个评论

这篇文章主要为大家详细介绍了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; @Component public 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)<i style="color:transparent">来源gaodai$ma#com搞$代*码网</i> { } } } 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-600

4、ftp查看

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持gaodaima搞代码网

以上就是springboot集成ftp实现文件上传的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:springboot集成ftp实现文件上传
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址