欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java實現(xiàn)FTP上傳到服務器

 更新時間:2022年09月02日 10:16:05   作者:HSBhuang  
這篇文章主要為大家詳細介紹了Java實現(xiàn)FTP上傳到服務器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

簡介

FTP是TCP/IP協(xié)議組中的協(xié)議之一,包括兩個組成部分,一是FTP服務端,二是FTP客戶端,其中FTP服務器用來存儲文件,用戶可以使用FTP客戶端通過FTP協(xié)議訪問位于FTP服務器上的資源。

實例

下面利用Java實現(xiàn)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 {
? ? ? ? //創(chuàng)建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密碼用戶名錯誤或當前用戶無權(quán)限
? ? ? ? if (!FTPReply.isPositiveCompletion(reply)) {
? ? ? ? ? ? ftpClient.disconnect();
? ? ? ? ? ? return;
? ? ? ? }
? ? ? ? //設置文件類型(二進制)
? ? ? ? ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
? ? ? ? //設置被動模式
? ? ? ? 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)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Springboot如何通過yml配置文件為靜態(tài)成員變量賦值

    Springboot如何通過yml配置文件為靜態(tài)成員變量賦值

    這篇文章主要介紹了Springboot如何通過yml配置文件為靜態(tài)成員變量賦值,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Mybatis查找返回Map,List集合類型的數(shù)據(jù)方式

    Mybatis查找返回Map,List集合類型的數(shù)據(jù)方式

    這篇文章主要介紹了Mybatis查找返回Map,List集合類型的數(shù)據(jù)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 淺談java Iterator.remove()方法的用法(詳解)

    淺談java Iterator.remove()方法的用法(詳解)

    下面小編就為大家?guī)硪黄獪\談java Iterator.remove()方法的用法(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • SpringCloud實戰(zhàn)小貼士之Zuul的路徑匹配

    SpringCloud實戰(zhàn)小貼士之Zuul的路徑匹配

    這篇文章主要介紹了SpringCloud實戰(zhàn)小貼士之Zuul的路徑匹配,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • Java的sort的排序及使用詳解

    Java的sort的排序及使用詳解

    這篇文章主要為大家詳細介紹了Java的sort的排序及使用,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下 ,希望您能夠多多關注
    2022-02-02
  • 線程池中使用spring aop事務增強

    線程池中使用spring aop事務增強

    這篇文章主要介紹了線程池中使用spring aop事務增強,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • @Cacheable 拼接key的操作

    @Cacheable 拼接key的操作

    這篇文章主要介紹了@Cacheable 拼接key的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • MyBatisPlus唯一索引批量新增或修改的實現(xiàn)方法

    MyBatisPlus唯一索引批量新增或修改的實現(xiàn)方法

    本文主要介紹了MyBatisPlus唯一索引批量新增或修改的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • Java實現(xiàn)復雜的進制轉(zhuǎn)換器功能示例

    Java實現(xiàn)復雜的進制轉(zhuǎn)換器功能示例

    這篇文章主要介紹了Java實現(xiàn)復雜的進制轉(zhuǎn)換器功能,結(jié)合實例形式分析了java數(shù)學運算的相關實現(xiàn)技巧,需要的朋友可以參考下
    2017-01-01
  • idea同時編輯多行問題-win&mac都支持

    idea同時編輯多行問題-win&mac都支持

    這篇文章主要介紹了idea同時編輯多行問題-win&mac都支持,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09

最新評論