FTP 文件的上传和下载

Java 实现上传文件到FTP和从FTP下载文件 在eclipse 中创建项目,并将commons-net-3.6.jar包复制到项目中commons-net-3.6.jar:链接:https://pan.baidu.com/s/1iz0862TXljeXd-uHoJ0CvA 密码:hf50在项目中创建JAVA 类TestFtpClient,程序代码如下:package ftp_email; import java.io.FileInputSt... 阅读详情
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.*;

/**
 * 实现FTP文件上传和文件下载
 */
public class FtpApche {

    private static FTPClient ftpClient = new FTPClient();
    private static String encoding = System.getProperty("file.encoding");

    /**
     * Description: 向FTP服务器上传文件
     *
     * @param url      FTP服务器hostname
     * @param port     FTP服务器端口
     * @param username FTP登录账号
     * @param password FTP登录密码
     * @param path     FTP服务器保存目录,如果是根目录则为“/”
     * @param filename 上传到FTP服务器上的文件名
     * @param input    本地文件输入流
     * @return 成功返回true,否则返回false
     * @Version1.0
     */
    public static boolean uploadFile(String url, int port, String username,
                                     String password, String path, String filename, InputStream input) {
        boolean result = false;

        try {
            int reply;
            // 如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
            ftpClient.connect(url);
            // ftp.connect(url, port);// 连接FTP服务器
            // 登录
            ftpClient.login(username, password);
            ftpClient.setControlEncoding(encoding);
            // 检验是否连接成功
            reply = ftpClient.getReplyCode();
            if (!FTPReply.isPositiveCompletion(reply)) {
                System.out.println("连接失败");
                ftpClient.disconnect();
                return result;
            }

            // 转移工作目录至指定目录下
            boolean change = ftpClient.changeWorkingDirectory(path);
            ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
            if (change) {
                result = ftpClient.storeFile(new String(filename.getBytes(encoding), "iso-8859-1"), input);
                if (result) {
                    System.out.println("上传成功!");
                }
            }
            input.close();
            ftpClient.logout();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (ftpClient.isConnected()) {
                try {
                    ftpClient.disconnect();
                } catch (IOException ioe) {
                }
            }
        }
        return result;
    }

    /**
     * 将本地文件上传到FTP服务器上
     */
    public void testUpLoadFromDisk() {
        try {
            FileInputStream in = new FileInputStream(new File("D:/test02/list.txt"));
            boolean flag = uploadFile("10.0.0.102", 21, "admin", "123456", "/", "lis.txt", in);
            System.out.println(flag);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }


    /**
     * Description: 从FTP服务器下载文件
     *
     * @param url        FTP服务器hostname
     * @param port       FTP服务器端口
     * @param username   FTP登录账号
     * @param password   FTP登录密码
     * @param remotePath FTP服务器上的相对路径
     * @param fileName   要下载的文件名
     * @param localPath  下载后保存到本地的路径
     * @return
     * @Version1.0
     */
    public static boolean downFile(String url, int port, String username, String password, String remotePath, String fileName, String localPath) {
        boolean result = false;
        try {
            int reply;
            ftpClient.setControlEncoding(encoding);

            /*
             *  为了上传和下载中文文件,有些地方建议使用以下两句代替
             *  new String(remotePath.getBytes(encoding),"iso-8859-1")转码。
             *  经过测试,通不过。
             */
//            FTPClientConfig conf = new FTPClientConfig(FTPClientConfig.SYST_NT);
//            conf.setServerLanguageCode("zh");

            ftpClient.connect(url, port);
            // 如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
            ftpClient.login(username, password);// 登录
            // 设置文件传输类型为二进制
            ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
            // 获取ftp登录应答代码
            reply = ftpClient.getReplyCode();
            // 验证是否登陆成功
            if (!FTPReply.isPositiveCompletion(reply)) {
                ftpClient.disconnect();
                System.err.println("FTP server refused connection.");
                return result;
            }
            // 转移到FTP服务器目录至指定的目录下
            ftpClient.changeWorkingDirectory(new String(remotePath.getBytes(encoding), "iso-8859-1"));
            // 获取文件列表
            FTPFile[] fs = ftpClient.listFiles();
            for (FTPFile ff : fs) {
                if (ff.getName().equals(fileName)) {
                    File localFile = new File(localPath + "/" + ff.getName());
                    OutputStream is = new FileOutputStream(localFile);
                    ftpClient.retrieveFile(ff.getName(), is);
                    is.close();
                }
            }

            ftpClient.logout();
            result = true;
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (ftpClient.isConnected()) {
                try {
                    ftpClient.disconnect();
                } catch (IOException ioe) {
                }
            }
        }
        return result;
    }

    /**
     * 将FTP服务器上文件下载到本地
     */
    public void testDownFile() {
        try {
            boolean flag = downFile("10.0.0.102", 21, "admin",
                    "123456", "/", "ip.txt", "E:/");
            System.out.println(flag);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        FtpApche fa = new FtpApche();
        fa.testDownFile();
        fa.testUpLoadFromDisk();
    }
}

FTP服务器快速搭建
FTP文件夹的上传和下载

FTP上的文件转换为Microsoft Word文档 本文还有配套的精品资源,点击获取 简介:文章讲述了将FTP服务器上的文件转换成Microsoft Word文档的过程和所需工具。这一过程涉及连接FTP服务器、下载PDF文件、使用PDF转Word转换器(如e-PDFToWordConverter_2.5)、编辑和保存转换后的Word文档,以及可选的将文档上传回FTP服务器。文章强调了转换工具在保持原始文件布局和格式方面的重要... 阅读详情

相关推荐

C#中实现FTP文件上传和下载的全面指南

文件传输协议(FTP)是互联网上用于文件传输的协议,它允许用户或应用程序连接到远程服务器,浏览目录,并上传或下载文件。在C#中,开发者可以使用标准的.NET类库中的和类来实现FTP功能。本章首先介绍FTP的基础知识,并展示如何在C#环境下实现基本的FTP操作。FTP使用标准的网络协议在客户端和服务器之间传输文件。它使用两个TCP端口:20用于数据传输,21用于命令和控制信息。FTP是基于客户端-服务器模型的应用程序,用户通过身份验证登录到FTP服务器。

weixin_36064575的博客 1915

java上传文件到ftp服务器(匿名方式)

import java.io.*; 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;

fengqilove520的专栏 3041

学习Ultralytics (下载)

Ultralytics由创立,最初是为了简化目标检测模型的开发和应用,专注于构建高效、易用、性能卓越的深度学习框架。其主要产品之一是 YOLO 系列模型,尤其是最新的YOLOv5和YOLOv8,因其在精度、速度和可扩展性方面的出色表现而广受欢迎。

2301_76846375的博客 2863

FTP 上精确取文件,提供byte[]传出,再转本地文件

import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io

kuanghongjiang的专栏 7314

自动驾驶仿真:Carsim、NI和VTD联合仿真课题二

文章目录前言一、设备配置1、硬件需求2、网络配置二、Carsim工程配置1、创建工程2、创建数据库3、参数配置三、VTD工程配置1、创建工程四、Veristand工程配置1、创建工程五、运行程序 前言 上篇文章《Carsim、NI和VTD联合仿真课题一》简单地介绍了三者之间的联合框架,以及NI与VTD之间简单的组包与拆包指导。这篇文章将要讲述的是如何将三个软件联合起来,如何设置软件参数,用最简单的方法把仿真车开起来。 一、设备配置 1、硬件需求 注:真正的做智能驾驶仿真项目,至少需要两台电脑,一台实时机

zataji的博客 1万+

从零到一:使用阿里云百炼搭建企业级 AI Agent 完全实战手册(2026超详细版)

本文是一份企业级AI Agent构建手册,主要面向企业技术负责人、AI产品经理和后端开发工程师。手册详细介绍了如何在阿里云百炼平台上搭建企业智能体应用的全流程,包括环境准备、知识库构建、智能体创建、工具集成、工作流编排等核心环节。重点内容包括: 准备工作:阿里云账号注册、百炼服务开通、免费额度领取、API Key管理 知识库构建:文档格式要求、内容优化原则、RAG系统搭建 智能体开发:Agent创建、工具集成、复杂业务工作流设计 生产部署:多渠道接入、监控运维、安全治理 成本控制:Token预算管理、选型决

u010323587的专栏 1069

FTPFile类

org.apache.commons.net.ftp 类FTPFile java.lang.Object org.apache.commons.net.ftp.ftpfile 所有实现的接口:序列化 公共课FTPFile延伸目标实现了序列化 该FTPFile类用于表示信息的文件存储 ftp服务器上。 参见:ftpfileentryparser,

qq_29663071的博客 7990

STDP实战:用PyTorch从零搭建脉冲神经网络(附完整代码)

本文提供了基于PyTorch从零搭建脉冲神经网络的实战教程,重点讲解了STDP学习规则的原理与工程实现。通过构建LIF神经元模型和向量化STDP层,并结合泊松编码,详细演示了如何构建一个能够进行无监督特征学习的混合网络架构,为探索神经形态计算和低功耗实时学习方案提供了完整代码与实践指南。

weixin_29056145的博客 263

整理FTP协议相关知识,撰写FTP服务器文件列表展示、文件上传、文件下载等代码案例和实现步骤细节;

FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:“下载”(Download)和\"上传\"(Upload)。\"下载\"文件就是从远程主机拷贝文件至自己的计算机上;\"上传\"文件就是将文件从自己的计算机中拷贝至远程主机上。

m0_63293142的博客 776

使用PackStack工具自动化部署OpenStack

搭建 OpenStack 环境,每个组件的安装和配置都需要熟悉其特定的依赖关系、参数设置等,对于初学者来说容易出错。PackStack 工具通过集成一系列脚本和配置文件,便于快速搭建OpenStack练习环境。CPU:支持 Intel VT - x 或 AMD - V 硬件虚拟化技术,并且要在 BIOS 里开启此功能。内存:16GB以上存储:200GB以上可用空间(2)VMware WorkStation16.0以上版本(3)远程连接工具(如Xshell、MobaXterm)

2301_80440447的博客 4093

深入解析DDR5 RFM机制:从JESD79-5标准到硬件实现

本文深入解析了DDR5内存标准中的关键机制——RFM(Refresh Management)。文章从JESD79-5标准出发,详细阐述了RFM如何通过RAA计数器实现从被动定时到主动响应的智能刷新管理,并探讨了其硬件实现细节、命令调度挑战及系统级设计考量,为芯片设计工程师优化DDR5内存子系统性能与可靠性提供了实践指导。

fff88的博客 486

Java实现FTP文件上传和下载

一、背景 二、maven依赖 三、FTP工具类 3.1、主动模式(PORT) 3.2、被动模式(PASV) 四、验证 4.1、dos下操作FTP 4.2、FTP文件上传 4.3、FTP文件下载

嘉禾嘉宁papa 2万+

基于SAGE算法的宽带信道参数估计算法的MATLAB仿真

本文将介绍如何使用MATLAB进行SAGE算法的仿真,以便更好地理解和应用该算法。SAGE算法是一种基于最大期望(Expectation-Maximization)方法的迭代估计算法,用于估计未知的参数。在宽带信道参数估计中,SAGE算法通过迭代优化来估计信道的传输函数。总结起来,本文介绍了如何使用MATLAB进行基于SAGE算法的宽带信道参数提取算法的仿真。通过以上步骤,我们可以得到估计的信道响应,并与真实信道响应进行比较。此外,SAGE算法还可以与其他信道估计算法相结合,以提高估计的准确性和性能。

CodeRoarX的博客 1075

通过FTP进行文件的上传和下载

目录一、FTP服务器展示文件列表:第一步:创建FTPClient第二步:连接FTP服务器并验证用户名密码第三步:切换到目标文件夹第四步:切换成功后,显示所有该目录下的所有文件第五步:最后关闭FTPClient对象 (要处理异常)整理所有代码:二、FTP服务器进行文件上传:第一步:创建FTPClient第二步:连接FTP服务器并验证用户名密码第三步:切换到目标文件夹,若没有:进行创建第四步:切换成功后,进行文件上传4.1、 设置上传文件类型4.2、设置上传文件保存至FTP服务器 第五步:最后关闭FTPClie

m0_61639114的博客 1万+

Ghost卷积原理与构建YOLOv11的GhostNet变体

本文探讨了在边缘设备部署YOLOv11时使用Ghost卷积进行模型轻量化的实践经验。针对Jetson Nano的4GB内存限制,作者通过替换Backbone中的3x3标准卷积为Ghost卷积,实现了参数减少28%、推理速度提升38%,仅损失1.1%mAP的优化效果。文章详细介绍了Ghost卷积的实现原理、在YOLOv11中的具体替换策略,以及训练调参和部署优化的关键技巧。作者强调轻量化是计算效率与模型性能的权衡,建议工程团队保留原模型和Ghost变体两个版本,根据实际需求灵活切换。Ghost卷积的核心价值在

as1225120794的博客 168

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

FTP上传和下载文件

package ftp; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import org.apache.commons.io.IOUtils; import org.apache.commons.net.ftp

丑哥最风骚 的专栏 1324

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

python实现FTP文件上传和下载

前言 python拥有丰富且强大的类库,借助ftplib模块,可以很方便的实现FTP文件的上传和下载。 代码实例 # -*- coding: utf-8 -*- from ftplib import FTP import datetime, os, re class FtpUtil(object): """ FTP 常用方法 ftp.set_debuglevel(2) # 打开调试级别2,显示详细信息 ftp.connect("IPaddress", "port")

刘某人妙妙屋 5202

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

FTP上传和下载文件的应用

FTP(File Transfer Protocol)协议主要用来在网络上进行文件传输。FTP通讯除了有一个默认的端口21外,还有其他端口,同城两个端口同时进行数据传输。一个是默认的端口(通常为21),主要进行控制连接,即进行命令协议及服务器端响应码的传输。另一个非标准端口主要进行数据,上传下载文件等。具体上传、下载代码如下 import java.io.File; import...

144

Android中关于FTP的文件上传和下载

Android中关于FTP的文件上传和下载 此篇博客为整理文章,文章出处:http://www.cnblogs.com/xyc20080413/archive/2013/04/08/3008646.html 1.首先下载commons-net  jar包,可以百度下载。 FTP的文件上传和下载的工具类: [java] view plain copy

一名屌丝程序员的秘密花园 2676

如何在命令行中使用 ftp 命令上传和下载文件

如何在命令行中使用 ftp 命令上传和下载文件 本文中,介绍在 Linux shell 中如何使用 ftp 命令。包括如何连接 FTP 服务器,上传或下载文件以及创建文件夹。尽管现在有许多不错的 FTP 桌面应用,但是在服务器、SSH、远程会话中命令行 ftp 命令还是有很多应用的。比如。需要服务器从 ftp 仓库拉取备份。 步骤 1: 建立 ...

weixin_34102807的博客 7133

H3C简单FTP上传和下载文件

1:首先单独创建个FTP的账号 <HY-ACCESS-E>system-view System View: return to User View with Ctrl+Z. [HY-ACCESS-E]ftp server enable [HY-ACCESS-E]local-user test1 New local user added. [HY-ACCESS-E-luser...

NeverGUM的博客 9682

FTP上传和下载文件实例

声明:本文纯属个人随手笔记,如果对您有参考价值我十分开心,如果有存在错误,或者有更好的解决办法也麻烦您留言告诉我,大家共同成长,切勿恶言相。 欢迎加入资源共享QQ群:275343679,一起发现知识、了解知识、学习知识、分享知识。网站:www.itlantian.top ==============================================================...

蓝天 744

Linux 下ftp上传和下载文件

Linux 下ftp上传和下载文件

ahua的博客 1919
上一篇: 本地FTP服务器快速搭建(windows)
下一篇: FTP 文件夹的上传和下载
JFS_Study
博客等级 码龄6年 363粉丝 359原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JFS_Study

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值