Java实现FTP上传到服务器
更新时间:2022年09月02日 10:16:05 作者:HSBhuang
这篇文章主要为大家详细介绍了Java实现FTP上传到服务器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
简介
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>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
SpringBoot部署到Linux读取resources下的文件及遇到的坑
本文主要给大家介绍SpringBoot部署到Linux读取resources下的文件,在平时业务开发过程中,很多朋友在获取到文件内容乱码或者文件读取不到的问题,今天给大家分享小编遇到的坑及处理方案,感兴趣的朋友跟随小编一起看看吧2021-06-06基于java+springboot+mybatis+laiyu实现学科竞赛管理系统
这篇文章主要介绍了基于java+springboot+mybatis+laiyu实现的学科竞赛管理系统,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-09-09Java多线程 Guarded Suspension设计模式
这篇文章主要介绍了Java多线程 Guarded Suspension设计模式,Guarded Suspension意为保护暂停,其核心思想是仅当服务进程准备好时,才提供服务,文章围绕Java多线程 Guarded Suspension展开内容,需要的朋友可以参考一下2021-10-10Spring中的@EnableScheduling定时任务注解
这篇文章主要介绍了Spring中的@EnableScheduling注解,@EnableScheduling是 Spring Framework 提供的一个注解,用于启用 Spring 的定时任务功能,通过使用这个注解,可以在 Spring 应用程序中创建定时任务,需要的朋友可以参考下2024-01-01详解SpringBoot 快速整合Mybatis(去XML化+注解进阶)
本篇文章主要介绍了详解SpringBoot 快速整合Mybatis(去XML化+注解进阶),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-11-11
最新评论