Java FTP上传到服务器
HSBhuang 人气:0简介
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>
加载全部内容