Java实现FTP上传到服务器
作者:HSBhuang 时间:2022-10-07 10:28:58
简介
FTP是TCP/IP协议组中的协议之一,包括两个组成部分,一是FTP服务端,二是FTP客户端,其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。
实例
下面利用Java实现FTP上传图片到远程服务器实例:
1、依赖jar包
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.6</version>
</dependency>
2、FtpUtil用来封装上传文件的工具类
public class FtpUtil {
public static void UploadImageByInputStream(InputStream is,String imageName) throws IOException {
//创建ftp客户端
FTPClient ftpClient = new FTPClient();
ftpClient.setControlEncoding("GBK");
String hostname = "127.0.0.1";//服务器地址
int port = 21;//ftp端口
String username = "vftp";//ftp用户名
String password = "****";//密码
//连接ftp服务器
ftpClient.connect(hostname, port);
//登陆ftp
ftpClient.login(username, password);
int reply = ftpClient.getReplyCode();
System.out.println(reply);
//如果reply返回230就算成功了,如果返回530密码用户名错误或当前用户无权限
if (!FTPReply.isPositiveCompletion(reply)) {
ftpClient.disconnect();
return;
}
//设置文件类型(二进制)
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
//设置被动模式
ftpClient.enterLocalPassiveMode();
// ftpClient.makeDirectory("images");//在root目录下创建文件夹
// String remoteFileName = System.currentTimeMillis()+"_"+imageName;
// ftpClient.storeFile("/www/wwwroot/vftp/"+imageName, is);//文件你若是不指定就会上传到root目录下
ftpClient.storeFile(imageName, is);//文件你若是不指定就会上传到root目录下
is.close();
ftpClient.logout();
ftpClient.disconnect();
}
}
3、控制器
@RestController
public class FileUploadController {
@RequestMapping("/upload")
public String upload(@RequestParam("file") MultipartFile file) {
if (!file.isEmpty()){
try {
InputStream inputStream = file.getInputStream();
FtpUtil.UploadImageByInputStream(inputStream,file.getOriginalFilename());
} catch (IOException e) {
e.printStackTrace();
return "fail";
}
return "success";
}else {
return "fail";
}
}
}
4、前端页面
<body>
<form action="/upload" method="post" enctype="multipart/form-data">
选择文件:<input type="file" name="file"><br>
<input type="submit" value="上传">
</form>
</body>
来源:https://blog.csdn.net/HSBhuang/article/details/118364078
标签:Java,FTP,服务器
0
投稿
猜你喜欢
Spring Cloud基于zuul实现网关过程解析
2021-09-11 06:52:19
使用CursorLoader异步加载数据
2021-10-06 12:17:31
Android中JSON的4种解析方式使用和对比
2023-05-03 11:32:10
Java快速批量移动文件的实现方法
2021-06-15 16:58:56
Java实现二叉堆、大顶堆和小顶堆
2022-08-20 18:39:33
实例化JFileChooser对象报空指针异常问题的解决办法
2023-10-05 11:36:18
Spring依赖注入的三种方式小结
2022-08-09 15:56:41
spring boot + mybatis实现动态切换数据源实例代码
2021-11-14 03:37:59
Restful传递数组参数及注解大全
2021-07-25 05:39:35
详解WPF中的APP生命周期以及全局异常捕获
2022-12-10 11:54:27
Java字符判断的小例子
2023-08-26 17:29:49
Mapper类中存在名称相同的方法重载报错问题
2023-04-04 02:44:39
Java中对象的深复制(深克隆)和浅复制(浅克隆)介绍
2023-02-20 12:05:39
三种Android单击事件onclick的实现方法
2022-05-21 16:54:03
SpringBoot 如何实现异步编程
2023-04-15 13:45:43
JavaWeb中上传和下载文件实例代码
2023-11-04 10:24:00
基于Java Springboot + Vue + MyBatis实现音乐播放系统
2023-07-09 16:01:41
Java DelayQueue实现任务延时示例讲解
2023-03-17 01:37:49
解读classpath读取resources目录下的文件
2023-01-25 05:49:36
java多线程抓取铃声多多官网的铃声数据
2023-12-18 23:20:05