Spring Boot整合FTP实现上传图片或文件
2019-06-18 16:18
2506 查看
简介
jquery 通过 ajax 调用 spring boot 后台方法,实现图片或文件上传到 ftp 服务器
第一步:
pom.xml文件中引入依赖包
<!-- FtpClient依赖包 --> <dependency> <groupId>commons-net</groupId> <artifactId>commons-net</artifactId> <version>3.3</version> </dependency>
第二步:
编写 ftp 上传文件工具类
package com.ruoyi.framework.util; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPReply; import java.io.IOException; import java.io.InputStream; /** * @Description:ftp文件上传工具类 * @author Wang JinLei * @date 2019年5月14日 上午9:51:26 */ public class FTPFileUploadUtils { //ftp服务器ip地址 private static final String FTP_ADDRESS = "192.168.1.110"; //端口号 private static final int FTP_PORT = "21"; //用户名 private static final String FTP_USERNAME = "aaa"; //密码 private static final String FTP_PASSWORD = "aaa"; //图片路径 private static final String FTP_BASEPATH = "/images/"; public static boolean uploadFile(String originFileName, InputStream input){ boolean success = false; 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(); if (!FTPReply.isPositiveCompletion(reply)) { ftp.disconnect(); return success; } ftp.setFileType(FTPClient.BINARY_FILE_TYPE); ftp.makeDirectory(FTP_BASEPATH ); ftp.changeWorkingDirectory(FTP_BASEPATH ); ftp.storeFile(originFileName,input); input.close(); ftp.logout(); success = true; } catch (IOException e) { e.printStackTrace(); } finally { if (ftp.isConnected()) { try { ftp.disconnect(); } catch (IOException ioe) { } } } return success; } }
第三步:
编写 Controller
package com.ruoyi.web.api; import java.io.InputStream; import java.util.UUID; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; import com.ruoyi.common.annotation.Log; import com.ruoyi.framework.util.FTPFileUploadUtils; /** * @Description:ftp文件上传类 * @author Wang JinLei * @date 2019年5月14日 上午9:51:26 */ @Controller @RequestMapping("/system/data") public class FTPFileUploadController { @PostMapping("/updateAvatar") @ResponseBody public String updateAvatar(MultipartFile file){ try{ if (!file.isEmpty()){ //获取图片或文件的后缀名 String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); //拼接图片或文件名称,32位随机uuid+后缀名 String fileName = UUID.randomUUID().toString().replace("-", "").toLowerCase() + suffix; InputStream inputStream = file.getInputStream(); //调用ftp上传文件工具类,返回true成功,返回false失败 Boolean flag = FTPFileUploadUtils.uploadFile(fileName,inputStream); if(flag == true){ //这里按功能需求做相应处理即可 return "上传成功"; } } } return "上传失败"; } catch (Exception e){ return "上传异常"; } } }
相关文章推荐
- SpringCloud yml 配置feign整合FtpClient连接池实现文件上传下载微服务
- springBoot整合ftp上传图片功能
- springBoot整合ftp上传图片功能
- Java Springboot结合FastDFS实现文件上传以及根据图片url将图片上传至图片服务器
- easyui+springboot+poi实现图片,音频,视频的上传(ftp)和回显(支持IE8)
- FTP+SpringMVC+Uploadify实现带进度条多文件上传
- springboot实现文件上传和下载功能
- 前台:layui 后台:springboot(MultipartFile)实现多文件上传
- dwz+jquery+fileupload+springmvc实现文件上传 及图片预览
- spring boot实现上传图片并在页面上显示
- Spring boot 实现单个或批量文件上传功能
- springboot/springmvc实现文件上传
- spring环境实现FTP文件上传下载
- springboot和fastdfs实现文件ajax上传
- spring boot实现图片的上传和下载功能
- (下节)Spring+JDBC+Struts;实现图片上传(后台文件名要规范),加国际化;头文件basepath确保路径从webroot开始;
- spring boot实现图片上传和下载功能
- Spring Boot实现图片上传/加水印一把梭操作实例代码
- spring boot 实现文件上传和下载,以及多文件上传
- SpringBoot轻松实现文件上传