国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java 實現FTP服務實例詳解

Java 實現FTP服務實例詳解

2020-09-22 09:56javawebrookie Java教程

這篇文章主要介紹了Java 實現FTP服務實例詳解的相關資料,需要的朋友可以參考下

Java 實現FTP服務實例詳解

1、FTP簡介

        FTP 是File Transfer Protocol(文件傳輸協議)的英文簡稱,而中文簡稱為“文傳協議”。用于Internet上的控制文件的雙向傳輸。同時,它也是一個應用程序(Application)。基于不同的操作系統有不同的FTP應用程序,而所有這些應用程序都遵守同一種協議以傳輸文件。在FTP的使用當中,用戶經常遇到兩個概念:"下載"(Download)和"上傳"(Upload)。"下載"文件就是從遠程主機拷貝文件至自己的計算機上;"上傳"文件就是將文件從自己的計算機中拷貝至遠程主機上。用Internet語言來說,用戶可通過客戶機程序向(從)遠程主機上傳(下載)文件。

2、實例

2.1、添加依賴

?
1
2
3
4
5
<!-- 文件上傳組件 -->
 <dependency>
   <groupId>commons-fileupload</groupId>
   <artifactId>commons-fileupload</artifactId>
 </dependency>

2.2測試類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package testController;
 
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.chenzhengyou.common.util.FtpUtil;
import org.junit.Test;
 
import java.io.File;
import java.io.FileInputStream;
 
/**
 * @auther 陳鄭游
 * @create 2016-11-23-19:27
 * @功能描述 圖片測試
 * @公司地址
 */
 
public class FtpController {
 
  //主機地址 端口號
  private String HOSTNAME = "127.0.0.1";
  private Integer PORT = 21;
  //本地圖片路徑
  private String FilePackage = "F:\\Programming_Package\\IMG_3733_1.JPG";
 
  //用戶名 密碼
  private String USERNAME = "czy";
  private String PASSWORD = "czy";
 
  /**
   * 無工具類圖片測試
   * */
  @Test
  public void testFtp() throws Exception {
    //創建一個FtpClient對象
    FTPClient ftpClient = new FTPClient();
    //創建ftp連接。默認是21端口
    ftpClient.connect(HOSTNAME,PORT);
    //登錄ftp服務器,使用用戶名和密碼
    ftpClient.login(USERNAME,PASSWORD);
    //上傳文件。
    //讀取本地文件
    FileInputStream inputStream = new FileInputStream(new File(FilePackage));
    //設置上傳的路徑
    ftpClient.changeWorkingDirectory("/myftp/images");
    //修改上傳文件的格式
    ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
    //第一個參數:服務器端文檔名
    //第二個參數:上傳文檔的inputStream
    ftpClient.storeFile("hello.jpg", inputStream);
    //關閉連接
    ftpClient.logout();
  }
}

2.3、FTP工具類上傳圖片

工具類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
package org.chenzhengyou.common.util;
 
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
 
import java.io.*;
 
/**
 * @auther 陳鄭游
 * @create 2016-11-23-19:27
 * @功能描述 ftp工具類
 * @公司地址
 */
public class FtpUtil {
 
  /**
   * Description: 向FTP服務器上傳文件
   * @param host FTP服務器hostname
   * @param port FTP服務器端口
   * @param username FTP登錄賬號
   * @param password FTP登錄密碼
   * @param basePath FTP服務器基礎目錄
   * @param filePath FTP服務器文件存放路徑。例如分日期存放:/2015/01/01。文件的路徑為basePath+filePath
   * @param filename 上傳到FTP服務器上的文件名
   * @param input 輸入流
   * @return 成功返回true,否則返回false
   */
  public static boolean uploadFile(String host, int port, String username,
                   String password, String basePath,
      String filePath, String filename, InputStream input) {
 
    boolean result = false;
    FTPClient ftp = new FTPClient();
    try {
      int reply;
      ftp.connect(host, port);// 連接FTP服務器
      // 如果采用默認端口,可以使用ftp.connect(host)的方式直接連接FTP服務器
      ftp.login(username, password);// 登錄
      reply = ftp.getReplyCode();
      if (!FTPReply.isPositiveCompletion(reply)) {
        ftp.disconnect();
        return result;
      }
      //切換到上傳目錄
      if (!ftp.changeWorkingDirectory(basePath+filePath)) {
        //如果目錄不存在創建目錄
        String[] dirs = filePath.split("/");
        String tempPath = basePath;
        for (String dir : dirs) {
          if (null == dir || "".equals(dir)) continue;
          tempPath += "/" + dir;
          if (!ftp.changeWorkingDirectory(tempPath)) {
            if (!ftp.makeDirectory(tempPath)) {
              return result;
            } else {
              ftp.changeWorkingDirectory(tempPath);
            }
          }
        }
      }
      //設置上傳文件的類型為二進制類型
      ftp.setFileType(FTP.BINARY_FILE_TYPE);
      //上傳文件
      if (!ftp.storeFile(filename, input)) {
        return result;
      }
      input.close();
      ftp.logout();
      result = true;
    } catch (IOException e) {
      e.printStackTrace();
    } finally {
      if (ftp.isConnected()) {
        try {
          ftp.disconnect();
        } catch (IOException ioe) {
        }
      }
    }
    return result;
  }
   
  /**
   * Description: 從FTP服務器下載文件
   * @param host FTP服務器hostname
   * @param port FTP服務器端口
   * @param username FTP登錄賬號
   * @param password FTP登錄密碼
   * @param remotePath FTP服務器上的相對路徑
   * @param fileName 要下載的文件名
   * @param localPath 下載后保存到本地的路徑
   * @return
   */
  public static boolean downloadFile(String host, int port, String username, String password, String remotePath,
      String fileName, String localPath) {
    boolean result = false;
    FTPClient ftp = new FTPClient();
    try {
      int reply;
      ftp.connect(host, port);
      // 如果采用默認端口,可以使用ftp.connect(host)的方式直接連接FTP服務器
      ftp.login(username, password);// 登錄
      reply = ftp.getReplyCode();
      if (!FTPReply.isPositiveCompletion(reply)) {
        ftp.disconnect();
        return result;
      }
      ftp.changeWorkingDirectory(remotePath);// 轉移到FTP服務器目錄
      FTPFile[] fs = ftp.listFiles();
      for (FTPFile ff : fs) {
        if (ff.getName().equals(fileName)) {
          File localFile = new File(localPath + "/" + ff.getName());
 
          OutputStream is = new FileOutputStream(localFile);
          ftp.retrieveFile(ff.getName(), is);
          is.close();
        }
      }
 
      ftp.logout();
      result = true;
    } catch (IOException e) {
      e.printStackTrace();
    } finally {
      if (ftp.isConnected()) {
        try {
          ftp.disconnect();
        } catch (IOException ioe) {
        }
      }
    }
    return result;
  }
}

實現類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package testController;
 
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.chenzhengyou.common.util.FtpUtil;
import org.junit.Test;
 
import java.io.File;
import java.io.FileInputStream;
 
/**
 * @auther 陳鄭游
 * @create 2016-11-23-19:27
 * @功能描述 圖片測試
 * @公司地址
 */
 
public class FtpController {
 
  //主機地址 端口號
  private String HOSTNAME = "127.0.0.1";
  private Integer PORT = 21;
  //本地圖片路徑
  private String FilePackage = "F:\\Programming_Package\\IMG_3733_1.JPG";
 
  //用戶名 密碼
  private String USERNAME = "czy";
  private String PASSWORD = "czy";
 
  /**
   * 有工具類測試
   * */
  @Test
  public void testUtil() throws Exception {
    FileInputStream inputStream = new FileInputStream(new File("F:\\Programming_Package\\IMG_3733_1.JPG"));
    FtpUtil.uploadFile(HOSTNAME,PORT, USERNAME, PASSWORD, "/myftp/images", "/2016/11/24", "hello.jpg", inputStream);
  }
}

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

原文鏈接:http://blog.csdn.net/javawebrookie/article/details/62439276

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 成人免费网站 | 久久99精品久久久 | 亚洲精品一区二区三区 | 欧美黑人一级爽快片淫片高清 | 久久视频热 | 午夜精品久久久久久久星辰影院 | 中文字幕日韩一区 | 日韩欧美精品在线 | 亚洲色图 偷拍自拍 | 激情久久网 | 久久99精品久久久久久久青青日本 | 免费午夜电影 | 午夜精品久久久久久久久久久久 | 久久国产精品免费一区二区三区 | 国内毛片毛片 | 精品1区| 亚洲精品1 | 精品久久久久久久久久久 | 国产欧美日韩综合精品一区二区 | 久草福利在线视频 | av在线天堂网 | 国产日韩欧美 | 国产精品久久久久久久久 | 成人激情视频免费在线观看 | 精品一区二区三区中文字幕老牛 | 国产黄色电影 | 可以免费看黄的网站 | 91精品久久久久久综合五月天 | 午夜在线电影 | 日韩一二三区视频 | av在线免费网址 | 国产精品免费久久久久久久久 | 免费观看av电影 | 欧美一区二区三区男人的天堂 | 日韩欧美一级片 | 寡妇性视频免费高清播放器 | 国产美女一区二区 | 91在线视频观看 | 91精品秘密在线观看 | 欧美精品一二三区 | 成人免费视频网站在线观看 |