springBoot整合ftp上传图片功能
2018-01-12 11:31
477 查看
知识点:
springBoot后端项目,接收前端框架传到的图片,把图片上传到ftp图片服务器上
1. pom.xml中引入依赖的包
<!-- 加入上传文件组件 -->
<!-- https://mvnrepository.com/artifact/commons-net/commons-net -->
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.3</version>
</dependency>
2.ftp上传工具类FtpFileUtil.java
package com.hand.hand.util;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
import java.io.IOException;
import java.io.InputStream;
/**
* Created by nishuai on 2018/1/12.
*/
public class FtpFileUtil {
//ftp服务器ip地址
private static final String FTP_ADDRESS = "101.132.1.113";
//端口号
private static final int FTP_PORT = 21;
//用户名
private static final String FTP_USERNAME = "ftp";
//密码
private static final String FTP_PASSWORD = "123456";
//图片路径
private static final String FTP_BASEPATH = "/home/ftpadmin/health/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;
}
}
3.controller层接口 FtpFileUploadController.java
package com.hand.hand.controller;
import com.hand.hand.util.FtpFileUtil;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.io.InputStream;
/**
* Created by nishuai on 2017/12/26.
*/
@CrossOrigin
@Controller
public class FtpFileUploadController {
//ftp处理文件上传
@RequestMapping(value="/ftpuploadimg", method = RequestMethod.POST)
public @ResponseBody String uploadImg(@RequestParam("file") MultipartFile file,
HttpServletRequest request) throws IOException {
String fileName = file.getOriginalFilename();
InputStream inputStream=file.getInputStream();
String filePath=null;
Boolean flag=FtpFileUtil.uploadFile(fileName,inputStream);
if(flag==true){
System.out.println("ftp上传成功!");
filePath=fileName;
}
return filePath; //该路径图片名称,前端框架可用ngnix指定的路径+filePath,即可访问到ngnix图片服务器中的图片
}
}
相关文章推荐
- springBoot整合ftp上传图片功能
- Spring+SpringMVC+MyBatis+easyUI整合优化篇(七)图片上传功能
- spring boot 图片上传与显示功能实例详解
- Spring+SpringMVC+MyBatis+easyUI整合优化篇(七)图片上传功能
- spring boot实现图片上传和下载功能
- Spring+SpringMVC+MyBatis+easyUI整合优化篇(七)图片上传功能
- SpringBoot:上传图片到Linux服务器(html+ajax+jquery+ftpclient+nginx)
- spring boot实现图片的上传和下载功能
- springboot整合H+,基于summernote的富文本编辑器图片上传
- springBoot 连接打包成jar包运行时,获取图片上传文件、前端页面等文件
- spring boot实现上传图片并在页面上显示
- EXTJS中整合tinymce的富文本编辑器,添加上传图片功能
- 基于spring-boot的文件上传和下载(包括图片的压缩)--第一篇(Java代码)
- springboot图片上传
- Spring Boot整合Ehcache实现缓存功能
- spring boot 图片上传后的图片读取路径在win与linux环境配置的差别
- springboot实现文件上传和下载功能
- spring boot实现上传图片并在页面上显示
- SpringBoot整合Mybatis实现增删改查的功能
- SSH整合之后解决Kindeditor图片上传功能失效的方案