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

java如何使用ftp下載遠程服務器文件

 更新時間:2024年11月06日 16:04:58   作者:Dubbo-羅  
Java通過FTP下載文件主要有兩種方式:第一種是直接在連接中包含賬號和密碼進行遠程下載;第二種是登錄后使用賬號和密碼進行下載,這些方法適用于需要從遠程服務器獲取文件的場景

java使用ftp下載遠程服務器文件

第一種方法

連接中帶有賬號密碼直接遠程下載:

    public Result<?> download(){
		//進行下載文件---------------------------------開始
        //遠程服務器下載地址
        String fileurl = "ftp://superAdmin:superAdmin123@192.168.1.8:8888/usr/mp4pt/rec/CHN0/10110120011100/00001.mp4";
        //文件物理路徑
        String realfilepath = "F:/rhsftdemo/00001.mp4";
        //本地中新建文件夾目錄
        File file = new File("F:/rhsftdemo/");
        if (!file.exists()) {
            file.mkdirs();
        }
        log.info("存儲路徑realfilepath:" + realfilepath + "下載路徑:" + fileurl);
        download(fileurl,realfilepath);
        return Result.ok();
    }

    private static final int BUFFER_SIZE = 4096;
    public void download(String ftpUrl,String savePath){
        long startTime = System.currentTimeMillis();
//        String ftpUrl = "ftp://ftp.f-secure.com/misc/unixutil/skeysrcs.zip";
        String file = "";
        // name of the file which has to be download
        String host = ""; // ftp server
        String user = ""; // user name of the ftp server
        String pass = ""; // password of the ftp server
//        String savePath = "F:\\skeysrcs.zip";
        ftpUrl = String.format(ftpUrl, user, pass, host);
        System.out.println("Connecting to FTP server");
        try {
            URL url = new URL(ftpUrl);
            URLConnection conn = url.openConnection();
            InputStream inputStream = conn.getInputStream();
            long filesize = conn.getContentLength();
            System.out.println("Size of the file to download in kb is:-" + filesize / 1024);
            FileOutputStream outputStream = new FileOutputStream(savePath);
            byte[] buffer = new byte[BUFFER_SIZE];
            int bytesRead = -1;
            while ((bytesRead = inputStream.read(buffer)) != -1) {
                outputStream.write(buffer, 0, bytesRead);
            }
            long endTime = System.currentTimeMillis();
            System.out.println("File downloaded");
            System.out.println("Download time in sec. is:-" + (endTime - startTime) / 1000);
            outputStream.close();
            inputStream.close();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }

第二種方法

通過賬號密碼登錄后進行下載:

   public Result<?> download(){
        //進行下載文件---------------------------------開始
        //遠程服務器下載地址
        String fileurl = "ftp://192.168.1.8:8888/usr/mp4pt/rec/CHN0/20220420095100/00001.mp4";
        //本地文件物理路徑
        String realfilepath = "F:/rhsftdemo/00001.mp4";
        //本地中新建文件夾目錄
        File file = new File("F:/rhsftdemo/");
        if (!file.exists()) {
            file.mkdirs();
        }
        log.info("存儲路徑realfilepath:" + realfilepath + "下載路徑:" + fileurl);
        boolean bb = retepasvfile(realfilepath,fileurl,"00001.mp4");
        return Result.ok();
    }


/**
     * 本地保存
     *
     * @param localurl 本地文件物理路徑
     * @param hosturl 遠程服務器下載地址
     * @param filename 文件名稱
     *
     * @return
     */
    public synchronized boolean retepasvfile(String localurl, String hosturl, String filename) {
        FTPClient ftp = new FTPClient();
        boolean re = false;
        try {
            log.info("本地存儲路徑==:" + localurl);
            File file = FileUtil.getFile(localurl);
            ftp.setConnectTimeout(10000);
            ftp.setDataTimeout(10000);
            ftp.connect("192.168.1.8", 21);
            if (!org.springframework.util.StringUtils.isEmpty("admin") && !org.springframework.util.StringUtils.isEmpty("superAdmin123") && "superAdmin" != "null" && "superAdmin123" != "null") {
                //這里輸入賬號密碼
                ftp.login("superAdmin", "superAdmin123");
            } else {
                log.info("開始鏈接ftp:");
                ftp.login("anonymous", "anonymous");
            }

            //ftp.bin();
            //  String str=ftp.pwd();
            ftp.enterLocalPassiveMode(); //被動模式
            ftp.setControlKeepAliveTimeout(60);
            ftp.setFileType(FTP.BINARY_FILE_TYPE);
            boolean b = ftp.changeWorkingDirectory(hosturl.substring(0, hosturl.lastIndexOf("/")));
            log.info("pwd:" + b + "---切換目錄:" + hosturl.substring(0, hosturl.lastIndexOf("/")));
            long locationsize = file.length();//服務器上文件的大小
            if (b) {
                boolean res = false;
                res = ftp.retrieveFile(filename, new FileOutputStream(file));
                if (res) {
                    //ftp.disconnect();
                    log.info("文件下載完成");
                    re = true;
                } else {
                    log.info("文件下載失敗");
                    //ftp.disconnect();
                }
            }
        } catch (Exception e) {
            e.getStackTrace();

            log.error("retepasvfileSamba:e=3" + e);
        } finally {
            try {
                ftp.disconnect();
            } catch (Exception e) {
            }
        }
        return re;
    }

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Springboot 掃描mapper接口的2種操作

    Springboot 掃描mapper接口的2種操作

    這篇文章主要介紹了Springboot 掃描mapper接口的2種操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • Java 根據(jù)url下載網(wǎng)絡資源

    Java 根據(jù)url下載網(wǎng)絡資源

    這篇文章主要介紹了Java 根據(jù)url下載網(wǎng)絡資源的示例代碼,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-11-11
  • Spring Boot如何支持嵌入式Servlet容器

    Spring Boot如何支持嵌入式Servlet容器

    這篇文章主要介紹了Spring Boot如何支持嵌入式Servlet容器,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10
  • Spring Boot 集成 mybatis核心機制

    Spring Boot 集成 mybatis核心機制

    這篇文章給大家介紹Spring Boot 集成 mybatis核心機制,本文結(jié)合實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2025-11-11
  • SpringCloud?Function?SpEL注入漏洞分析及環(huán)境搭建

    SpringCloud?Function?SpEL注入漏洞分析及環(huán)境搭建

    SpringCloud 是一套分布式系統(tǒng)的解決方案,常見的還有阿里巴巴的Dubbo,F(xiàn)ass的底層實現(xiàn)就是函數(shù)式編程,SpringCloud Function 就是Spring提供的分布式函數(shù)式編程組件,下面給大家介紹下SpringCloud?Function?SpEL注入漏洞分析,感興趣的朋友一起看看吧
    2022-04-04
  • Spring和Websocket相結(jié)合實現(xiàn)消息的推送

    Spring和Websocket相結(jié)合實現(xiàn)消息的推送

    這篇文章主要介紹了Spring和Websocket相結(jié)合實現(xiàn)消息的推送的相關(guān)資料,本文介紹的非常詳細具有參考借鑒價值,感興趣的朋友一起學習吧
    2016-02-02
  • Java?使用geotools讀取tiff數(shù)據(jù)的示例代碼

    Java?使用geotools讀取tiff數(shù)據(jù)的示例代碼

    這篇文章主要介紹了Java?通過geotools讀取tiff,一般對于tiff數(shù)據(jù)的讀取,都會借助于gdal,本文結(jié)合示例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2022-04-04
  • Java線程池用法實戰(zhàn)案例分析

    Java線程池用法實戰(zhàn)案例分析

    這篇文章主要介紹了Java線程池用法,結(jié)合具體案例形式分析了java線程池創(chuàng)建、使用、終止等相關(guān)操作技巧與使用注意事項,需要的朋友可以參考下
    2019-10-10
  • 淺談Spring Cloud下微服務權(quán)限方案

    淺談Spring Cloud下微服務權(quán)限方案

    這篇文章主要介紹了淺談Spring Cloud下微服務權(quán)限方案,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • Java 處理超大數(shù)類型之BigInteger案例詳解

    Java 處理超大數(shù)類型之BigInteger案例詳解

    這篇文章主要介紹了Java 處理超大數(shù)類型之BigInteger案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-09-09

最新評論

祁阳县| 望奎县| 资阳市| 瑞昌市| 永定县| 普宁市| 陇川县| 鄂托克旗| 郸城县| 自治县| 恩施市| 安阳市| 云龙县| 三台县| 环江| 鄯善县| 抚顺市| 桃园市| 桐梓县| 砀山县| 历史| 遵化市| 墨竹工卡县| 商城县| 奈曼旗| 黄平县| 徐州市| 长白| 桃江县| 汾阳市| 东源县| 汉沽区| 炎陵县| 陇南市| 宜宾县| 论坛| 齐河县| 同心县| 雷州市| 霸州市| 厦门市|