最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java上傳文件FTP服務(wù)器代碼實(shí)例

 更新時(shí)間:2020年12月08日 10:56:51   作者:久曲健  
這篇文章主要介紹了Java上傳文件FTP服務(wù)器代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

FTP服務(wù)器(File Transfer Protocol Server)是在互聯(lián)網(wǎng)上提供文件存儲(chǔ)和訪問(wèn)服務(wù)的計(jì)算機(jī),它們依照FTP協(xié)議提供服務(wù)。 FTP是File Transfer Protocol(文件傳輸協(xié)議)。顧名思義,就是專門用來(lái)傳輸文件的協(xié)議。簡(jiǎn)單地說(shuō),支持FTP協(xié)議的服務(wù)器就是FTP服務(wù)器。

在實(shí)際的應(yīng)用中,通常是通過(guò)程序來(lái)進(jìn)行文件的上傳。

1.實(shí)現(xiàn)java上傳文件到ftp服務(wù)器中

2.新建maven項(xiàng)目

添加依賴

<dependency>
  <groupId>commons-net</groupId>
  <artifactId>commons-net</artifactId>
  <version>3.3</version>
</dependency>

3.實(shí)例代碼:

package com.test.fto.demo;
/**
ftp鏈接常量
*/
public class Ftp {
	private String ipAddr;
	//ip地址
	private Integer port;
	//端口號(hào)
	private String userName;
	//用戶名
	private String pwd;
	//密碼
	private String path;
	//aaa路徑
	public String getIpAddr() {
		return ipAddr;
	}
	public void setIpAddr(String ipAddr) {
		this.ipAddr = ipAddr;
	}
	public Integer getPort() {
		return port;
	}
	public void setPort(Integer port) {
		this.port = port;
	}
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getPwd() {
		return pwd;
	}
	public void setPwd(String pwd) {
		this.pwd = pwd;
	}
	public String getPath() {
		return path;
	}
	public void setPath(String path) {
		this.path = path;
	}
}

測(cè)試代碼:

package com.test.fto.demo;

import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
import org.testng.annotations.Test;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

public class FtpUtil {

private static FTPClient ftp;

/**
 * 獲取ftp連接
 *
 * @param f
 * @return
 * @throws Exception
 */
public static boolean connectFtp(Ftp f) throws Exception {
  ftp = new FTPClient();
  boolean flag = false;
  int reply;
  if (f.getPort() == null) {
    ftp.connect(f.getIpAddr(), 21);
  } else {
    ftp.connect(f.getIpAddr(), f.getPort());
  }
  ftp.login(f.getUserName(), f.getPwd());
  ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
  reply = ftp.getReplyCode();
  if (!FTPReply.isPositiveCompletion(reply)) {
    ftp.disconnect();
    return flag;
  }
  ftp.changeWorkingDirectory(f.getPath());
  flag = true;
  return flag;
}

/**
 * 關(guān)閉ftp連接
 */
public static void closeFtp() {
  if (ftp != null && ftp.isConnected()) {
    try {
      ftp.logout();
      ftp.disconnect();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

/**
 * ftp上傳文件
 *
 * @param f
 * @throws Exception
 */
public static void upload(File f) throws Exception {
  if (f.isDirectory()) {
    ftp.makeDirectory(f.getName());
    ftp.changeWorkingDirectory(f.getName());
    String[] files = f.list();
    for (String fstr : files) {
      File file1 = new File(f.getPath() + "/" + fstr);
      if (file1.isDirectory()) {
        upload(file1);
        ftp.changeToParentDirectory();
      } else {
        File file2 = new File(f.getPath() + "/" + fstr);
        FileInputStream input = new FileInputStream(file2);
        ftp.storeFile(file2.getName(), input);
        input.close();
      }
    }
  } else {
    File file2 = new File(f.getPath());
    FileInputStream input = new FileInputStream(file2);
    ftp.storeFile(file2.getName(), input);
    input.close();
  }
}
@Test
public static void test() throws Exception {
  Ftp f = new Ftp();
  f.setIpAddr("your ip");
  f.setUserName("username");
  f.setPwd("password");
  FtpUtil.connectFtp(f);
  File file = new File("F:/robotium-solo-5.6.1.jar");
  FtpUtil.upload(file);//把文件上傳在ftp上
  System.out.println("上傳文件完成。。。。");
}
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • java判斷字符串包含某個(gè)字符的實(shí)例方法

    java判斷字符串包含某個(gè)字符的實(shí)例方法

    在本篇文章里小編給大家整理的是一篇關(guān)于java判斷字符串包含某個(gè)字符的實(shí)例方法,有需要的朋友們學(xué)習(xí)下。
    2019-12-12
  • SpringBoot整合JWT Token的完整步驟

    SpringBoot整合JWT Token的完整步驟

    JSON Web Token是目前最流行的跨域認(rèn)證解決方案,適合前后端分離項(xiàng)目通過(guò)Restful API進(jìn)行數(shù)據(jù)交互時(shí)進(jìn)行身份認(rèn)證,這篇文章主要給大家介紹了關(guān)于SpringBoot整合JWT Token的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • 基于Spring Boot應(yīng)用ApplicationEvent案例場(chǎng)景

    基于Spring Boot應(yīng)用ApplicationEvent案例場(chǎng)景

    這篇文章主要介紹了基于Spring Boot應(yīng)用ApplicationEvent,利用Spring的機(jī)制發(fā)布ApplicationEvent和監(jiān)聽(tīng)ApplicationEvent,需要的朋友可以參考下
    2023-03-03
  • Can''t use Subversion command line client:svn 報(bào)錯(cuò)處理

    Can''t use Subversion command line client:svn 報(bào)錯(cuò)處理

    這篇文章主要介紹了Can't use Subversion command line client:svn 報(bào)錯(cuò)處理的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • SpringBoot中的文件上傳和異常處理詳解

    SpringBoot中的文件上傳和異常處理詳解

    這篇文章主要介紹了SpringBoot中的文件上傳和異常處理詳解,對(duì)于機(jī)器客戶端,它將生成JSON響應(yīng),其中包含錯(cuò)誤,HTTP狀態(tài)和異常消息的詳細(xì)信息,對(duì)于瀏覽器客戶端,響應(yīng)一個(gè)"whitelabel"錯(cuò)誤視圖,以HTML格式呈現(xiàn)相同的數(shù)據(jù),需要的朋友可以參考下
    2023-09-09
  • java向es中寫入數(shù)據(jù)報(bào)錯(cuò)org.elasticsearch.action.ActionReque問(wèn)題

    java向es中寫入數(shù)據(jù)報(bào)錯(cuò)org.elasticsearch.action.ActionReque問(wèn)題

    這篇文章主要介紹了java向es中寫入數(shù)據(jù)報(bào)錯(cuò)org.elasticsearch.action.ActionReque問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 深入理解java虛擬機(jī)的故障處理工具

    深入理解java虛擬機(jī)的故障處理工具

    大家都知道在給系統(tǒng)定位問(wèn)題的時(shí)候,知識(shí)、經(jīng)驗(yàn)是關(guān)鍵基礎(chǔ),數(shù)據(jù)是依據(jù),工具是運(yùn)用知識(shí)處理數(shù)據(jù)的手段。Java開(kāi)發(fā)人員可以在jdk安裝的bin目錄下找到除了java,javac以外的其他命令。這些命令主要是一些用于監(jiān)視虛擬機(jī)和故障處理的工具,下面來(lái)看看詳細(xì)的介紹。
    2016-11-11
  • SpringBoot整合Canal與RabbitMQ監(jiān)聽(tīng)數(shù)據(jù)變更記錄

    SpringBoot整合Canal與RabbitMQ監(jiān)聽(tīng)數(shù)據(jù)變更記錄

    這篇文章主要介紹了SpringBoot整合Canal與RabbitMQ監(jiān)聽(tīng)數(shù)據(jù)變更記錄,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • 關(guān)于swagger配置及踩坑@Api參數(shù)postion無(wú)效解決接口排序問(wèn)題

    關(guān)于swagger配置及踩坑@Api參數(shù)postion無(wú)效解決接口排序問(wèn)題

    這篇文章主要介紹了關(guān)于swagger配置及踩坑@Api參數(shù)postion無(wú)效解決接口排序問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • SpringDataJPA詳解增刪改查操作方法

    SpringDataJPA詳解增刪改查操作方法

    這篇文章主要介紹了SpringDataJpa增刪改查操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07

最新評(píng)論

读书| 桂东县| 泾源县| 边坝县| 松滋市| 积石山| 广平县| 台北县| 南京市| 儋州市| 亚东县| 乐清市| 铁力市| 临武县| 环江| 灵台县| 灵川县| 威海市| 蓬溪县| 长治县| 德清县| 南投市| 云安县| 精河县| 威宁| 邵阳县| 肥乡县| 旬阳县| 普安县| 高台县| 夏邑县| 富宁县| 乃东县| 上饶县| 黄陵县| 阿勒泰市| 乌拉特中旗| 邳州市| 永平县| 厦门市| 利津县|