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
投稿
猜你喜欢
IntelliJ IDEA maven 构建简单springmvc项目(图文教程)
2021-09-13 05:40:40
使用HTTPclient保持长连接
2023-10-17 12:29:34
Java原生服务器接收上传文件 不使用MultipartFile类
2023-11-09 19:31:36
JAVA 字符串加密、密码加密实现方法
2023-11-28 04:08:09
Java中遍历Map的六种方法实现
2022-03-21 13:30:58
Spring实现动态切换多数据源的解决方案
2023-05-21 13:07:15
Java基础:流Stream详解
2023-11-29 06:11:14
浅谈spring的重试机制无效@Retryable@EnableRetry
2021-12-12 10:42:57
Java简单实现调用命令行并获取执行结果示例
2023-02-08 18:53:32
SpringBoot+Nacos+Kafka微服务流编排的简单实现
2023-03-21 10:34:53
java后端解决跨域的几种问题解决
2022-01-05 06:34:24
Java框架---Spring详解
2021-07-09 14:27:30
妙解Java中的回调机制(CallBack)
2022-07-15 15:25:31
Java建造者设计模式详解
2022-09-19 13:14:11
JAVA实现单例模式的四种方法和一些特点
2023-11-02 05:38:20
Java8 使用 stream().sorted()对List集合进行排序的操作
2022-11-23 20:57:11
SpringBoot切面拦截@PathVariable参数及抛出异常的全局处理方式
2023-05-27 13:59:52
Android基于SoftReference缓存图片的方法
2023-07-13 00:53:21
SpringCloud Eureka实现服务注册与发现
2021-10-25 11:41:58
SpringMVC拦截器创建配置及执行顺序
2023-06-06 20:41:16