工具类,是一个单独的工程项目

提取必要信息至ftp.properties配置文件中

ftp_host=192.168.110.128
ftp_port=21
ftp_username=ftpuser
ftp_password=ftpuser
ftp_dir=/home/ftpuser/jd
ftp_url=http://www.images.com

封装FtpUtils工具类

public class FtpUtils {
private static String ftp_host = null;
private static String ftp_port = null;
private static String ftp_username = null;
private static String ftp_password = null;
private static String ftp_dir = null;
private static String ftp_url = null;
//1、封装参数
static{
InputStream ris = FtpUtils.class.getClassLoader().getResourceAsStream("ftp.properties");
Properties pp = new Properties();
try {
pp.load(ris);
ftp_host = pp.getProperty("ftp_host");
ftp_port = pp.getProperty("ftp_port");
ftp_username = pp.getProperty("ftp_username");
ftp_password = pp.getProperty("ftp_password");
ftp_dir = pp.getProperty("ftp_dir");
ftp_url = pp.getProperty("ftp_url");
} catch (IOException e) {
e.printStackTrace();
}
}
/****
* 实现建文件上传到静态资源服务器
*/
public static String uploadFile(String remote,InputStream local) { try {
//创建FTPClient对象
FTPClient client=new FTPClient();
//建立和ftp服务的链接
client.connect(ftp_host, Integer.parseInt(ftp_port));
//身份验证
client.login(ftp_username, ftp_password);
//设置上传的文件类型
client.setFileType(FTP.BINARY_FILE_TYPE);
//切换工作目录
if(!client.changeWorkingDirectory(ftp_dir)) {
client.makeDirectory(ftp_dir);
client.changeWorkingDirectory(ftp_dir);
}
//上传
client.storeFile(remote, local); }catch(Exception ex) {
ex.printStackTrace();
}
return ftp_url+"/jd/"+remote;
}
}

导入jar包版本:

<!-- ftpclient客户端  -->
<!--ftp文件上传-->
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.3</version>
</dependency>

测试调用:

/**
* 处理上传图片请求
*/
@Override
public Map<String, Object> uploadImageService(MultipartFile mf) {
// TODO Auto-generated method stub
HashMap<String, Object> map = new HashMap<>();
try {
//文件重命名
String oldName = mf.getOriginalFilename();
String remote = IDUtils.genImageName()+oldName.substring(oldName.lastIndexOf(".")); String url = FtpUtils.uploadFile(remote, mf.getInputStream());
map.put("error", 0);
map.put("url", url);
} catch (IOException e) {
// TODO Auto-generated catch block
map.put("error", 1);
map.put("message", "上传失败");
e.printStackTrace();
}
return map;
}

注:使用的是springboot,已经集成了ftp,所以没有配置相应的xml文件。

最新文章

  1. iOS开发系列--Swift进阶
  2. [转]Nodejs基础中间件Connect
  3. Operate blob data in Oracle via C#
  4. 聊聊IO多路复用之select、poll、epoll详解
  5. hadoop环境搭建遇到问题集锦
  6. Recover deleted pictures in iOS 9
  7. Nginx 403 error
  8. 三种读写XML的方法
  9. 食品药检所LIMS需求分析说明书
  10. [经典] 最X(长 | 大和 | 大积)Y(子序列 | 子字符串)
  11. 关于php输入$_post[‘’]报错的原因
  12. JS于string 和 json互转对象
  13. 将github上的项目源码导入到eclipse中
  14. PE文件简介
  15. ATL右键文件菜单
  16. 【强大美观易用的图像编辑器】Pixelmator Pro 1.2 for Mac
  17. C#并发集合(转)
  18. java 多态的好处
  19. P3811 【模板】乘法逆元
  20. 原生android(二)——认识activity

热门文章

  1. Dubbo支持的注册中心(二)
  2. JDOJ 3055: Nearest Common Ancestors
  3. NOIP 2004 合唱队形
  4. python的可变类型和不可变类型
  5. 数据结构——链队列(linked queue)
  6. 使用jQuery的replaceWith()方法要注意的地方
  7. [LeetCode] 272. Closest Binary Search Tree Value II 最近的二分搜索树的值之二
  8. [LeetCode] 234. Palindrome Linked List 回文链表
  9. Maven 的 classifier 的作用
  10. (98)address already in use: ah00072: make_sock: could not bind to address 0.0.0.0:80