静态资源上传至远程ftp服务器,ftp工具类封装
工具类,是一个单独的工程项目
提取必要信息至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文件。
静态资源上传至远程ftp服务器,ftp工具类封装的更多相关文章
- 你知道哪些linux命令,能把文件上传到远程linux服务器
多数情况下 企业的服务基本都是部署在linux服务器 那对于测试同学,必须掌握基本的linux命令 至少要知道怎么部署整体环境 部署过程中,经常需要的操作,是向服务器上传部署包 你一般都是 ...
- Debian下自动备份文件并上传到远程FTP服务器且删除指定日期前的备份Shell脚本
说明: 1.备份目录/home/osyunwei下面所有的文件到/home/osyunweibak里面,并且保存为osyunwei20120701.tar.gz的压缩文件格式(2012_07_01是 ...
- Linux下自动备份MySQL数据库并上传到远程FTP服务器
Linux下自动备份MySQL数据库并上传到远程FTP服务器且删除指定日期前的备份Shell脚本 说明: 1.备份MySQL数据库存放目录/var/lib/mysql下面的xshelldata数据库 ...
- sftp上传到远程服务器
开发遇到一个需求,需要将图片通过sftp上传到远程服务器上,之前没用过这个功能,折腾了我好几天才搞定,下面记录下我的处理方法: $sftp = 'ssh2.sftp://';//连接sftp $con ...
- SSH 远程上传本地文件至服务器
使用SSH命令行传输文件到远程服务器 以前一直在windows下用SSH Secure Shell连接远程服务器,它自带了一个可视化的文件传输工具,跟ftp差不多 但是它也存在一个缺陷,不支持编码 ...
- MySQL执行sql查询并上传至远程服务器
最近项目中有需要做一个shell脚本,可以对一个数据库执行sql操作,并将结果转为txt,筛选结果用tab隔开,保存至一个远程服务器上,以供其他人用Excel读取用txt中的内容. MySQL中将结果 ...
- Linux下远程备份、上传工程,重启服务器
Linux下远程备份.上传工程,重启服务器 Linux服务器实现远程,原项目的备份.删除,新项目上传,以及远程重启服务器!分成一个主shell调用三个shell文件步骤完成.mainsh.sh一次按顺 ...
- 让thinkphp 支持ftp上传到远程,ftp删除
让thinkphp真正的支持FTP上传.删除. 原创by default7#zbphp.com,如需转载请保留作者信息. /** * This is not a free software, All ...
- linux自动备份文件 并上传到远程服务器 脚本实现
(1)在服务器上创建备份目录,并赋予权限 mkdir -p /backup/bakdata #新建数据备份目录(2)完成备份脚本操作新建脚本文件 vi bakdata.sh添加 ...
随机推荐
- springboot shiro 基本整合
springboot shiro 基本整合 https://www.w3cschool.cn/shiro/c52r1iff.html http://shiro.apache.org/configura ...
- Leetcode.142-Linked-list-cycle-ii(环形链表II)
环形链表II 思路 https://www.cnblogs.com/springfor/p/3862125.html https://blog.csdn.net/u010292561/article/ ...
- perfview微软开源的cpu以及内存性能分析工具
perfview 是一个强大的分析工具,能用来分cpu,内存,磁盘io...多种指标,使用简单,功能强大 用来分析windows应用的性能问题,是一个很不错的选择 下载地址 https://githu ...
- 5-ESP8266 SDK开发基础入门篇--了解一下操作系统
对于操作系统不知道有没有害怕接触的... 先说一下操作系统是什么意思,其实咱的电脑就运行了操作系统,手机,等等... 操作系统和任务分不开,所谓任务就是一个一个的执行各个功能的函数,,,操作系统呢就是 ...
- [LeetCode] 684. Redundant Connection 冗余的连接
In this problem, a tree is an undirected graph that is connected and has no cycles. The given input ...
- [LeetCode] 37. Sudoku Solver 求解数独
Write a program to solve a Sudoku puzzle by filling the empty cells. A sudoku solution must satisfy ...
- UDF——处理二维网格的利器:Boost.Geometry库
本文编译工具:VC++ UDF Studio 该插件可以直接在Visual Studio中一键编译.加载.调试UDF源码,极大提高编写排错效率,且支持C++,MFC,Windows API和第三方库, ...
- Postman测试后台使用@RequestBody接收参数的坑
问题原因:我在使用PostMan测试接口时发现数据传递不过来,是因为请求体定义为JSON数据,自动就传递不过来,虽然问题简单,但由于之前这个用的较少,所以就忽略了这点. 解决问题链接:https:// ...
- C# HTTP系列8 GET与POST对比说明
系列目录 [已更新最新开发文章,点击查看详细] HTTP协议,即超文本传输协议(Hypertext transfer protocol).是一种详细规定了浏览器和万维网(WWW = Worl ...
- Docker 部署ELK
1.安装docker前安装pip sudo yum -y install epel-release sudo yum install python-pip 2.安装docker #安装依赖包 yum ...