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

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

  1. ftp_host=192.168.110.128
  2. ftp_port=21
  3. ftp_username=ftpuser
  4. ftp_password=ftpuser
  5. ftp_dir=/home/ftpuser/jd
  6. ftp_url=http://www.images.com

封装FtpUtils工具类

  1. public class FtpUtils {
  2. private static String ftp_host = null;
  3. private static String ftp_port = null;
  4. private static String ftp_username = null;
  5. private static String ftp_password = null;
  6. private static String ftp_dir = null;
  7. private static String ftp_url = null;
  8. //1、封装参数
  9. static{
  10. InputStream ris = FtpUtils.class.getClassLoader().getResourceAsStream("ftp.properties");
  11. Properties pp = new Properties();
  12. try {
  13. pp.load(ris);
  14. ftp_host = pp.getProperty("ftp_host");
  15. ftp_port = pp.getProperty("ftp_port");
  16. ftp_username = pp.getProperty("ftp_username");
  17. ftp_password = pp.getProperty("ftp_password");
  18. ftp_dir = pp.getProperty("ftp_dir");
  19. ftp_url = pp.getProperty("ftp_url");
  20. } catch (IOException e) {
  21. e.printStackTrace();
  22. }
  23. }
  24. /****
  25. * 实现建文件上传到静态资源服务器
  26. */
  27. public static String uploadFile(String remote,InputStream local) {
  28.  
  29. try {
  30. //创建FTPClient对象
  31. FTPClient client=new FTPClient();
  32. //建立和ftp服务的链接
  33. client.connect(ftp_host, Integer.parseInt(ftp_port));
  34. //身份验证
  35. client.login(ftp_username, ftp_password);
  36. //设置上传的文件类型
  37. client.setFileType(FTP.BINARY_FILE_TYPE);
  38. //切换工作目录
  39. if(!client.changeWorkingDirectory(ftp_dir)) {
  40. client.makeDirectory(ftp_dir);
  41. client.changeWorkingDirectory(ftp_dir);
  42. }
  43. //上传
  44. client.storeFile(remote, local);
  45.  
  46. }catch(Exception ex) {
  47. ex.printStackTrace();
  48. }
  49. return ftp_url+"/jd/"+remote;
  50. }
  51. }

导入jar包版本:

  1. <!-- ftpclient客户端 -->
  2. <!--ftp文件上传-->
  3. <dependency>
  4. <groupId>commons-net</groupId>
  5. <artifactId>commons-net</artifactId>
  6. <version>3.3</version>
  7. </dependency>

测试调用:

  1. /**
  2. * 处理上传图片请求
  3. */
  4. @Override
  5. public Map<String, Object> uploadImageService(MultipartFile mf) {
  6. // TODO Auto-generated method stub
  7. HashMap<String, Object> map = new HashMap<>();
  8. try {
  9. //文件重命名
  10. String oldName = mf.getOriginalFilename();
  11. String remote = IDUtils.genImageName()+oldName.substring(oldName.lastIndexOf("."));
  12.  
  13. String url = FtpUtils.uploadFile(remote, mf.getInputStream());
  14. map.put("error", 0);
  15. map.put("url", url);
  16. } catch (IOException e) {
  17. // TODO Auto-generated catch block
  18. map.put("error", 1);
  19. map.put("message", "上传失败");
  20. e.printStackTrace();
  21. }
  22. return map;
  23. }

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

静态资源上传至远程ftp服务器,ftp工具类封装的更多相关文章

  1. 你知道哪些linux命令,能把文件上传到远程linux服务器

    多数情况下 企业的服务基本都是部署在linux服务器 那对于测试同学,必须掌握基本的linux命令   至少要知道怎么部署整体环境   部署过程中,经常需要的操作,是向服务器上传部署包   你一般都是 ...

  2. Debian下自动备份文件并上传到远程FTP服务器且删除指定日期前的备份Shell脚本

    说明:  1.备份目录/home/osyunwei下面所有的文件到/home/osyunweibak里面,并且保存为osyunwei20120701.tar.gz的压缩文件格式(2012_07_01是 ...

  3. Linux下自动备份MySQL数据库并上传到远程FTP服务器

    Linux下自动备份MySQL数据库并上传到远程FTP服务器且删除指定日期前的备份Shell脚本 说明:  1.备份MySQL数据库存放目录/var/lib/mysql下面的xshelldata数据库 ...

  4. sftp上传到远程服务器

    开发遇到一个需求,需要将图片通过sftp上传到远程服务器上,之前没用过这个功能,折腾了我好几天才搞定,下面记录下我的处理方法: $sftp = 'ssh2.sftp://';//连接sftp $con ...

  5. SSH 远程上传本地文件至服务器

    使用SSH命令行传输文件到远程服务器   以前一直在windows下用SSH Secure Shell连接远程服务器,它自带了一个可视化的文件传输工具,跟ftp差不多 但是它也存在一个缺陷,不支持编码 ...

  6. MySQL执行sql查询并上传至远程服务器

    最近项目中有需要做一个shell脚本,可以对一个数据库执行sql操作,并将结果转为txt,筛选结果用tab隔开,保存至一个远程服务器上,以供其他人用Excel读取用txt中的内容. MySQL中将结果 ...

  7. Linux下远程备份、上传工程,重启服务器

    Linux下远程备份.上传工程,重启服务器 Linux服务器实现远程,原项目的备份.删除,新项目上传,以及远程重启服务器!分成一个主shell调用三个shell文件步骤完成.mainsh.sh一次按顺 ...

  8. 让thinkphp 支持ftp上传到远程,ftp删除

    让thinkphp真正的支持FTP上传.删除. 原创by default7#zbphp.com,如需转载请保留作者信息. /** * This is not a free software, All ...

  9. linux自动备份文件 并上传到远程服务器 脚本实现

    (1)在服务器上创建备份目录,并赋予权限       mkdir -p /backup/bakdata  #新建数据备份目录(2)完成备份脚本操作新建脚本文件      vi bakdata.sh添加 ...

随机推荐

  1. webapi简介及参数绑定

    介绍:WebAPI用来开发系统间接口的技术,基于HTTP协议,返回默认是json格式.比wcf简单 更通用,更轻量级,更省流量(json格式):WebAPI尽可能复用MVC路由.ModelBinder ...

  2. 交换机端口与Mac地址绑定(基于Cisco模拟器)

    实验设备: 二层交换机一台,主机三台 实验步骤: 1.进入相应的接口 (以端口1设置Mac地址绑定,PC0接1端口举例) Switch>enable Switch#config Configur ...

  3. Nginx与安全有关的几个配置

    Nginx与安全有关的几个配置 原创: 37丫37 运维咖啡吧 昨天 安全无小事,安全防范从nginx配置做起 上一篇文章<Nginx的几个常用配置和技巧>收到了不错的反馈,这里再总结下n ...

  4. python3中pymysql模块的事务操作

    try:    cursor.execute(sql_1)     cursor.execute(sql_2)     cursor.execute(sql_3) except Exception a ...

  5. CSP2019&&AFO

    day-1 attack回来了,颓废,吃蛋糕. day-0 和attack继续车上颓废. 报道,志愿者胖乎乎的,学校很新. day-1 T1写完写T2,两小时T310分 出来发现,T2好像有个地方没路 ...

  6. 8.10 NOIP模拟测试16 Blue+Weed+Drink

    T1 Blue 贪心,每次跳得时候跳能跳到的最远的地方,跳过的就把他设为0,每次二分找到位置,一直跳就行,如果能跳到的位置就是当前位置或比当前位置还小(数组里现在呆着的这一块石头,二分得到的就是当前位 ...

  7. Linux性能优化实战学习笔记:第八讲

    一.环境准备 1.在第6节的基础上安装dstat wget http://mirror.centos.org/centos/7/os/x86_64/Packages/dstat-0.7.2-12.el ...

  8. dogcom在openwrt上的使用

    前提,先配置并运行mentohust(作为802.1x认证) 1,取得编译完成的可执行文件(可先在虚拟机里测试) 2,上传到路由器 3,把dogcom主程序和配置文件放在/etc/storage/do ...

  9. DVWA XSS (Stored) 通关教程

    Stored Cross Site Scripting 存储型XSS,持久化,代码是存储在服务器中的,如在个人信息或发表文章等地方,加入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,用户 ...

  10. nodejs的作用【转】

    来源地址:https://www.zhihu.com/question/33578075/answer/56951771 如果你去年注意过技术方面的新闻,我敢说你至少看到node.js不下一两次.那么 ...