Win10 搭建FTP环境,并使用Java实现上传,下载,删除
测试的环境一般都是在自己电脑上面装的,现在一般都使用Win10开发
搭建FTP:
第一步:打开控制面板:点击程序
第二步:
第三步:
然后点击确认后等待完成
完成后在启动中找到IIS管理器
打开
在网站上右击,添加FTP站点
配置FTP名称并,设置文件夹
设置IP,端口,和SSL证书,一般自己测试是没有证书的,就点击无
配置身份认证和授权,然后点击完成
可以看到已经已启动了,
然后去测试一下是否可以使用
在文件夹地址栏上输入ftp://ip访问
可以看到是可以使用的
然后开始写测试代码
首先需要导入
common-net包,我使用的是Maven项目直接配置依赖
- <dependency>
- <groupId>commons-net</groupId>
- <artifactId>commons-net</artifactId>
- <version>3.3</version>
- </dependency>
创建一个测试文件
文件内容
然后写代码,公共代码部分大家可以自己抽取,因为是测试demo我就没有抽取了
- package utils;
- import org.apache.commons.net.ftp.FTPClient;
- import org.apache.commons.net.ftp.FTPFile;
- import org.apache.commons.net.ftp.FTPReply;
- import java.io.*;
- /**
- * FTP工具类
- * @author ZYGisComputer
- */
- public class FTPUtil {
- final static String url = "192.168.0.23";
- final static int port = 21;
- final static String username = "电脑用户名";
- final static String password = "密码";
- final static String path = "F:\\FTP";
- final static String filename = "test.txt";
- final static String remotePath = "\\";
- public static void main(String[] args) throws FileNotFoundException {
- InputStream in = new FileInputStream(new File("E:\\dance\\oracle\\src\\main\\resources\\FTP\\test.txt"));
- // 测试上传
- // boolean b = uploadFile(url, port, username, password, path, filename, in);
- // System.out.println(b);
- // 测试下载
- boolean b = downloadFile(url, port, username, password, remotePath, filename, "E:\\dance\\oracle\\src\\main\\resources\\download");
- System.out.println(b);
- // 测试删除
- // boolean b = deleteFtpFile(url, port, username, password, remotePath, filename);
- // System.out.println(b);
- }
- /**
- * Description: 向FTP服务器上传文件
- * @param url FTP服务器hostname
- * @param port FTP服务器端口,如果默认端口请写-1
- * @param username FTP登录账号
- * @param password FTP登录密码
- * @param path FTP服务器保存目录
- * @param filename 上传到FTP服务器上的文件名
- * @param input 输入流
- * @return 成功返回true,否则返回false
- */
- public static boolean uploadFile(String url, int port, String username, String password, String path,
- String filename, InputStream input)
- {
- boolean success = false;
- FTPClient ftp = new FTPClient();
- try
- {
- int reply;
- // 连接FTP服务器
- if (port > -1)
- {
- ftp.connect(url, port);
- }
- else
- {
- ftp.connect(url);
- }
- // 登录FTP
- ftp.login(username, password);
- reply = ftp.getReplyCode();
- if (!FTPReply.isPositiveCompletion(reply))
- {
- ftp.disconnect();
- return success;
- }
- ftp.changeWorkingDirectory(path);
- ftp.storeFile(filename, input);
- input.close();
- ftp.logout();
- success = true;
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
- finally
- {
- if (ftp.isConnected())
- {
- try
- {
- ftp.disconnect();
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
- }
- }
- return success;
- }
- /**
- * Description: 从FTP服务器下载文件
- * @Version1.0 Jul 27, 2008 5:32:36 PM by 崔红保(cuihongbao@d-heaven.com)创建
- * @param url FTP服务器hostname
- * @param port FTP服务器端口
- * @param username FTP登录账号
- * @param password FTP登录密码
- * @param remotePath FTP服务器上的相对路径
- * @param fileName 要下载的文件名
- * @param localPath 下载后保存到本地的路径
- * @return
- */
- public static boolean downloadFile(String url, int port, String username, String password, String remotePath,
- String fileName, String localPath)
- {
- boolean success = false;
- FTPClient ftp = new FTPClient();
- try
- {
- int reply;
- // 连接FTP服务器
- if (port > -1)
- {
- ftp.connect(url, port);
- }
- else
- {
- ftp.connect(url);
- }
- ftp.login(username, password);//登录
- reply = ftp.getReplyCode();
- if (!FTPReply.isPositiveCompletion(reply))
- {
- ftp.disconnect();
- return success;
- }
- ftp.changeWorkingDirectory(remotePath);//转移到FTP服务器目录
- FTPFile[] fs = ftp.listFiles();
- for (FTPFile ff : fs)
- {
- if (ff.getName().equals(fileName))
- {
- File localFile = new File(localPath + "/" + ff.getName());
- OutputStream is = new FileOutputStream(localFile);
- ftp.retrieveFile(ff.getName(), is);
- is.close();
- }
- }
- ftp.logout();
- success = true;
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
- finally
- {
- if (ftp.isConnected())
- {
- try
- {
- ftp.disconnect();
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
- }
- }
- return success;
- }
- /**
- * <删除FTP上的文件>
- * <远程删除FTP服务器上的录音文件>
- * @param url FTP服务器IP地址
- * @param port FTP服务器端口
- * @param username FTP服务器登录名
- * @param password FTP服务器密码
- * @param remotePath 远程文件路径
- * @param fileName 待删除的文件名
- * @return
- * @see [类、类#方法、类#成员]
- */
- public static boolean deleteFtpFile(String url, int port, String username, String password, String remotePath,
- String fileName)
- {
- boolean success = false;
- FTPClient ftp = new FTPClient();
- try
- {
- int reply;
- // 连接FTP服务器
- if (port > -1)
- {
- ftp.connect(url, port);
- }
- else
- {
- ftp.connect(url);
- }
- // 登录
- ftp.login(username, password);
- reply = ftp.getReplyCode();
- if (!FTPReply.isPositiveCompletion(reply))
- {
- ftp.disconnect();
- return success;
- }
- // 转移到FTP服务器目录
- ftp.changeWorkingDirectory(remotePath);
- success = ftp.deleteFile(remotePath + "/" + fileName);
- ftp.logout();
- }
- catch (IOException e)
- {
- e.printStackTrace();
- success = false;
- }
- finally
- {
- if (ftp.isConnected())
- {
- try
- {
- ftp.disconnect();
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
- }
- }
- return success;
- }
- }
代码写完开始测试:
测试上传:
执行结果:
- true
查看文件夹:
上传成功
测试下载:
执行结果:
- true
查看文件夹:
下载成功
测试删除:
执行结果:
- true
查看文件夹
删除成功
到此java操作FTP完成,如果要用到项目中可以稍作修改即可
作者:彼岸舞
时间:2020\09\24
内容关于:工作中用到的小技术
本文来源于网络,只做技术分享,一概不负任何责任
Win10 搭建FTP环境,并使用Java实现上传,下载,删除的更多相关文章
- [java]文件上传下载删除与图片预览
图片预览 @GetMapping("/image") @ResponseBody public Result image(@RequestParam("imageName ...
- 2013第38周日Java文件上传下载收集思考
2013第38周日Java文件上传&下载收集思考 感觉文件上传及下载操作很常用,之前简单搜集过一些东西,没有及时学习总结,现在基本没啥印象了,今天就再次学习下,记录下自己目前知识背景下对该类问 ...
- java FTP 上传下载删除文件
在JAVA程序中,经常需要和FTP打交道,比如向FTP服务器上传文件.下载文件,本文简单介绍如何利用jakarta commons中的FTPClient(在commons-net包中)实现上传下载文件 ...
- java操作FTP,实现文件上传下载删除操作
上传文件到FTP服务器: /** * Description: 向FTP服务器上传文件 * @param url FTP服务器hostname * @param port FTP服务器端口,如果默认端 ...
- 使用C#WebClient类访问(上传/下载/删除/列出文件目录)由IIS搭建的http文件服务器
前言 为什么要写这边博文呢?其实,就是使用C#WebClient类访问由IIS搭建的http文件服务器的问题花了我足足两天的时间,因此,有必要写下自己所学到的,同时,也能让广大的博友学习学习一下. 本 ...
- java文件上传下载组件
需求: 支持大文件批量上传(20G)和下载,同时需要保证上传期间用户电脑不出现卡死等体验: 内网百兆网络上传速度为12MB/S 服务器内存占用低 支持文件夹上传,文件夹中的文件数量达到1万个以上,且包 ...
- java中文上传下载功能实现(自己测试项目)
1.新建maven项目打war包 2.搭建springMVC框架 web.xml文件配置 <?xml version="1.0" encoding="UTF-8&q ...
- Linux shell:FTP(文件传输协议)上传下载命令
SecureCRT通过ftp将nmon上传,建立一个目录,用命令上传文件.[命令见下面] 或通过UE.SSH上传/下载,使用sftp建立链接. [通过cmd进入ftp服务器]先假设有一FTP服务器,F ...
- Java Sftp上传下载文件
需要使用jar包 jsch-0.1.50.jar sftp上传下载实现类 package com.bstek.transit.sftp; import java.io.File; import ja ...
随机推荐
- 微信小程序发送订阅消息(之前是模板消息)
之前的模板消息已经废弃,现在改为订阅消息,订阅消息发布前,需要用户确认后才能接收订阅消息. 小程序端 index.wxml <button bindtap="send"> ...
- soso官方:基于相关排序的判断
http://www.wocaoseo.com/thread-186-1-1.html 议程 概述 检索词 用户的信息需求 网页的自有信息 网页的附属信息 相关性的计算框架 概述 相关性的表象 检索词 ...
- UTF-8、GB2312、GBK编码格式详解和编码示例
UTF-8.GB2312.GBK编码格式详解 参考文章 UTF-8 使用1~4个字节对每个字符进行编码 128个ASCII字符字需要一个字节编码 带有附加符号的拉丁文.希腊文.西里尔字母.亚美尼亚语. ...
- JS开发必须知道的41个技巧
JS是前端的核心,但有些使用技巧你还不一定知道:本文梳理了JS的41个技巧,帮助大家提高JS的使用技巧: Array 1.数组交集 普通数组 const arr1 = [, , , , , ,],ar ...
- 读Twinsen的深入探索透视投影变换
2017.10.16更新,分割线下面是以前的文字,有表达的意思,却言不达意,实属羞耻,看官只需看前面文字即可. Twinsen大神的<深入探索透视投影变换>有几个点说得不够清晰,我这里提一 ...
- 使用Vagrant 后发现虚拟机磁盘空间爆满的血泪填坑记
现象: 用了几天vagrant后,发现docker 里的 Mysql5.7 服务无法启动,用docker ps 命令,发现mysql一直在反复重启, 查看mysql log 发现说磁盘空间不够, ...
- OpenShift Container Platform 4.3.0部署实录
本文参照红帽官方文档,在裸机安装Openshift4.3文档进行.因为只有一台64G内存的PC机,安装vmware vsphere 6.7免费版进行本测试,所以尝试在OCP官方文档要求的最低内存需求基 ...
- nginx系列(七)静态文件合并combo
根据雅虎性能优化准则,可以将大量的小型JS文件进行合并,用来提高WEB服务器的性能.下面就是笔者的一个实践. 目前必须安装在1.4.+才可以 官方:http://wiki.nginx.org/Http ...
- 案例:ADG环境遇到redo日志member路径有误以及RMAN-6571错误
最近先后帮客户做了两套从虚拟化环境到物理机的数据库迁移,都是Linux系统,Oracle 11.2.0.4的RAC,最终选定ADG方案实现迁移,简单高效. 在之前的文章Oracle 11g ADG 部 ...
- 用命令方式启动、停止appium服务和app
启动appium服务并监听一个端口命令: 命令command==> appium -a {ip} -p {port} -U {deviceName} -g {log} 以shell命令方式执行命 ...