Java實(shí)現(xiàn)FTP上傳到服務(wù)器
簡介
FTP是TCP/IP協(xié)議組中的協(xié)議之一,包括兩個組成部分,一是FTP服務(wù)端,二是FTP客戶端,其中FTP服務(wù)器用來存儲文件,用戶可以使用FTP客戶端通過FTP協(xié)議訪問位于FTP服務(wù)器上的資源。
實(shí)例
下面利用Java實(shí)現(xiàn)FTP上傳圖片到遠(yuǎn)程服務(wù)器實(shí)例:
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 {
? ? ? ? //創(chuàng)建ftp客戶端
? ? ? ? FTPClient ftpClient = new FTPClient();
? ? ? ? ftpClient.setControlEncoding("GBK");
? ? ? ? String hostname = "127.0.0.1";//服務(wù)器地址
? ? ? ? int port = 21;//ftp端口
? ? ? ? String username = "vftp";//ftp用戶名
? ? ? ? String password = "****";//密碼
? ? ? ? //連接ftp服務(wù)器
? ? ? ? ftpClient.connect(hostname, port);
? ? ? ? //登陸ftp
? ? ? ? ftpClient.login(username, password);
? ? ? ? int reply = ftpClient.getReplyCode();
? ? ? ? System.out.println(reply);
? ? ? ? //如果reply返回230就算成功了,如果返回530密碼用戶名錯誤或當(dāng)前用戶無權(quán)限
? ? ? ? if (!FTPReply.isPositiveCompletion(reply)) {
? ? ? ? ? ? ftpClient.disconnect();
? ? ? ? ? ? return;
? ? ? ? }
? ? ? ? //設(shè)置文件類型(二進(jìn)制)
? ? ? ? ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
? ? ? ? //設(shè)置被動模式
? ? ? ? ftpClient.enterLocalPassiveMode();
// ? ? ?ftpClient.makeDirectory("images");//在root目錄下創(chuàng)建文件夾
// ? ? ? ?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>
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- java使用SFTP上傳文件到資源服務(wù)器
- Java實(shí)現(xiàn)圖片上傳至服務(wù)器功能(FTP協(xié)議)
- java web FTPClient實(shí)現(xiàn)上傳文件到指定服務(wù)器
- java實(shí)現(xiàn)文件上傳下載至ftp服務(wù)器
- java文件上傳至ftp服務(wù)器的方法
- Java使用SFTP上傳文件到服務(wù)器的簡單使用
- java實(shí)現(xiàn)將文件上傳到ftp服務(wù)器的方法
- Java實(shí)現(xiàn)ftp上傳下載、刪除文件及在ftp服務(wù)器上傳文件夾的方法
- JAVA技術(shù)實(shí)現(xiàn)上傳下載文件到FTP服務(wù)器(完整)
- Java通過FTP服務(wù)器上傳下載文件的方法
相關(guān)文章
Java面向?qū)ο箨P(guān)鍵字extends繼承的深入講解
繼承就是使用已定義的類作為父類,新建一個類作為子類使用extends關(guān)鍵字繼承這個類,這樣就實(shí)現(xiàn)了繼承關(guān)系,這篇文章主要給大家介紹了關(guān)于Java面向?qū)ο箨P(guān)鍵字extends繼承的相關(guān)資料,需要的朋友可以參考下2021-08-08
springboot 異步調(diào)用的實(shí)現(xiàn)方法
這篇文章主要介紹了springboot 異步調(diào)用的實(shí)現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-04-04
springcloud項目里application.yml不加載的坑及解決
這篇文章主要介紹了springcloud項目里application.yml不加載的坑及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-07-07
idea使用spring Initializr 快速搭建springboot項目遇到的坑
這篇文章主要介紹了idea使用spring Initializr 快速搭建springboot項目遇到的坑,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11
Java使用 Stream 流和 Lambda 組裝復(fù)雜父子樹形結(jié)構(gòu)
在最近的開發(fā)中,遇到了兩個類似的需求:都是基于 Stream 的父子樹形結(jié)構(gòu)操作,返回 List 集合對象給前端,下面給大家分享Java使用 Stream 流和 Lambda 組裝復(fù)雜父子樹形結(jié)構(gòu)的相關(guān)操作,感興趣的朋友跟隨小編一起看看吧2024-07-07
詳解SpringMVC和MyBatis框架開發(fā)環(huán)境搭建和簡單實(shí)用
這篇文章主要介紹了詳解SpringMVC和MyBatis框架開發(fā)環(huán)境搭建和簡單實(shí)用,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-05-05
mybatis-generator-gui 工具使用(圖形化工具)
基于 mybatis generator 開發(fā)一款界面工具, 本工具可以使你非常容易及快速生成 Mybatis 的 Java POJO 文件及數(shù)據(jù)庫 Mapping 文件。本文重點(diǎn)給大家介紹mybatis-generator-gui 工具使用,感興趣的朋友一起看看吧2022-03-03
Spring Security 和Apache Shiro你需要具備哪些條件
這篇文章主要介紹了Spring Security 和Apache Shiro你需要具備哪些條件,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07

