`

FTP上传单个文件

 
阅读更多

 /** FTP地址 */

    private static final String GY_SERVER = "10.0.0.1";// 正式

 

    /**** 用户名*/

    private static final String GY_FTP_USERNAME = "test";// 正式

 

    /***** 密码*/

    private static final String GY_FTP_USERPASSWORD = "test";// 正式

 

    /**** 远程FTP上传的目录*/

    private static final String GY_FTP_REMOTE_PATH = "/data/ftpFile/";

 

        String path= this.getClass().getClassLoader().getResource(".").getPath();

        /** 文件名 **/

        String fileName = getFileName()+".txt";

        String filePath = path+"txtFile/"+fileName;

        /**** 本地保存txt的目录*/

        String GY_SAVE_DIR = path+"txtFile/";

        File txtFile = new File(GY_SAVE_DIR);

        if (!txtFile.exists()) {

            txtFile.mkdir();

        }

ftpUpload(GY_SAVE_DIR + File.separator + fileName, fileName);

 

/**

     * FTP上传单个文件

     */

    public static void ftpUpload(String filename, String oldFileName) {

        FTPClient ftpClient = new FTPClient();

        FileInputStream fis = null;

        int reply;

 

        try {

            System.out.println("====================connect start============================");

            ftpClient.connect(GY_SERVER);

            ftpClient.setConnectTimeout(20000);

            System.out.println("====================login start============================");

            ftpClient.login(GY_FTP_USERNAME, GY_FTP_USERPASSWORD);

            reply = ftpClient.getReplyCode();

            System.out.println("======reply========" + reply);

 

            if (!FTPReply.isPositiveCompletion(reply)) {

                ftpClient.disconnect();

                System.out.println("连接服务器失败");

            }

 

            System.out.println("登陆服务器成功");

            File srcFile = new File(filename);

            fis = new FileInputStream(srcFile);

            //设置上传目录

            ftpClient.changeWorkingDirectory(GY_FTP_REMOTE_PATH);

            ftpClient.setBufferSize(10240);

            ftpClient.setControlEncoding("UTF-8");

            //设置文件类型(二进制)

            ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);

            //remotePath路径传输 是以.tmp格式传输到远程目录下

            String remotePath = oldFileName+".tmp";

            ftpClient.storeFile(remotePath, fis);

            //将远程目录下的文件.tmp格式改为.txt格式,保持文件原子性

            ftpClient.rename(remotePath, oldFileName);

        } catch (IOException e) {

            e.printStackTrace();

            throw new RuntimeException("FTP客户端出错!", e);

        } finally {

            IOUtils.closeQuietly(fis);

            try {

                ftpClient.disconnect();

            } catch (IOException e) {

                e.printStackTrace();

                throw new RuntimeException("关闭FTP连接发生异常!", e);

            }

        }

    }

分享到:
评论

相关推荐

    个人用c写的ftp上传下载单个文件的小程序

    个人用C写的一个FTP上传单个文件的小程序,对ftp原理的简单研究; 下载的用户,请在linux下用gcc编译即可运行,没有特殊环境依赖。

    libcurl 作为ftp客户端上传文件

    以下是一段示例代码,展示了如何初始化libcurl,设置FTP上传参数,然后执行上传操作: ```cpp #include #include // 初始化libcurl curl_global_init(CURL_GLOBAL_DEFAULT); // 创建一个CURL句柄 CURL *curl = ...

    C#上传指定单个文件到FTP

    本篇文章将详细探讨如何使用C#来实现指定单个文件的FTP上传功能。 FTP上传的核心在于建立与FTP服务器的连接,然后通过FTP命令将本地文件传输到远程服务器。在C#中,我们可以利用System.Net命名空间下的...

    java ftp上传进行文件

    java ftp上传进行文件的读取和上传 上传单个文件的文件流 创建远程服务器目录 删除指定文件 上传单个文件 获取指定ftp目录下文件名

    FTP上传文件压缩文件生成CSV文件

    IOUtil则在整个过程中提供辅助的I/O操作,例如读取或写入本地文件,以及在FTP上传过程中创建临时文件或处理流。 这个流程涉及到的技能包括文件操作、流的管理和控制、网络编程(FTP协议)、数据格式处理(CSV)以及...

    java ftp上传文件

    我们可以使用 uploadFile 方法来上传单个文件,该方法将文件上传到 FTP 服务器的指定目录下。 在 uploadFile 方法中,我们首先连接 FTP 服务器,然后将文件上传到 FTP 服务器的指定目录下。在上传文件时,我们需要...

    Ftp上传文件和文件夹

    使用System.Net.FtpWebRequest类上传单个文件的基本步骤如下: 1. 创建FtpWebRequest对象,指定FTP服务器地址、方法(通常为POST或STOR,用于上传)以及用户名和密码。 ```csharp FtpWebRequest request = ...

    java实现ftp自动上传文件

    // 使用FTPClient的storeFile方法上传单个文件 } ``` 对于Log4j日志信息的读取,我们需要在程序中配置Log4j,并监听其输出。这通常涉及创建一个Appender,例如`org.apache.log4j.ConsoleAppender`,将日志输出到...

    FTP.zip_delphi ftp_ftp上传_上传文件

    - 使用`Put`方法上传单个文件。例如,将本地文件`C:\local\file.txt`上传至FTP服务器的根目录: ``` FTP.Put('C:\local\file.txt', 'file.txt'); ``` - 若要上传整个文件夹,需要遍历文件夹内的所有文件,并...

    C# winform 上传文件夹到指定FTP

    对于单个文件的上传,可以使用`FtpWebRequest`的`GetRequestStream()`方法获取上传流,然后将文件内容写入该流。但是,我们的任务是上传整个文件夹,所以我们需要遍历文件夹中的所有文件并逐个上传。这里可以使用...

    C#_WinForm_FTP上传批量下载

    #### 三、C# WinForm FTP上传单个文件 在C# WinForm应用程序中,可以通过`FtpWebRequest`类实现FTP上传功能。下面是一个具体的示例代码: ```csharp public void UploadImg() { FileInfo fileInfo = new FileInfo...

    QT5.7ftp客户端包含单文件上传下载及服务器文件删除

    QT5.7 FTP客户端是一个基于Qt库开发的用于FTP文件传输的应用程序,它支持基本的FTP操作,如单个文件的上传和下载,以及服务器端文件的删除功能。这个项目可能是一个独立的、轻量级的工具,适用于需要快速进行FTP操作...

    Java实现ftp上传程序源代码

    8. **实例代码**: 提供的压缩包中可能包含几个示例,展示了不同场景下的FTP上传,例如上传单个文件、批量文件或者特定类型的文件(如图片)。这些实例可以帮助开发者更好地理解和应用FTP上传功能。 9. **多线程上传...

    上传文件到ftp服务器

    首先,Ftp_dll是一个动态链接库(DLL),它封装了FTP的相关功能,包括上传单个文件、整个文件夹,以及支持暂停、停止上传和获取上传速度等高级特性。DLL是Windows操作系统中的一种机制,它可以让多个程序共享同一段...

    自己重新封装的C# FTP实现上传,下载,创建文件,文件夹,删除单个文件 MD5校验等

    5. **删除单个文件**:FTP的DELE命令用于删除远程文件,对应的C#实现是通过FtpWebRequest的Method属性设置为"DELETE",然后发送请求。 6. **非空目录递归删除**:在FTP中,如果要删除包含子文件或子目录的目录,...

    用Java实现FTP批量大文件上传下载

    ### 用Java实现FTP批量大文件上传下载的关键技术与实践 #### 一、项目背景与需求分析 在本文中,作者介绍了一项基于Java技术实现的FTP批量大文件上传下载的功能,旨在解决大规模工程项目中涉及的大文件批量传输...

    FTP 多线程断点上传

    在开发FTP客户端程序时,多线程和断点续传是两个重要的技术特性,它们能显著提高文件上传的效率和可靠性。 多线程技术允许FTP客户端同时执行多个任务,每个线程处理一部分工作。例如,在上传大文件时,可以将文件...

    批量上传文件带进度条

    在这个场景下,"批量上传文件带进度条"主要涉及的技术点有Java编程语言、多线程、FTP文件传输协议以及用户界面(UI)的设计。 首先,Java是实现这个功能的主要编程语言。Java以其跨平台性和丰富的类库而被广泛使用...

    FTP上传与下载.rar

    同样,可以下载单个文件或批量下载。 3. **指定本地保存路径**:指定下载文件在本地的存储位置。 4. **断点续传**:如果文件较大,可能需要实现断点续传功能,以便在网络中断后从上次停止的地方继续下载。 在"FTP...

    ftp上传大附件

    FTP上传大附件的关键在于正确设置和管理数据传输,因为大文件可能会超过单个TCP连接的最大传输限制。以下是一些重要的知识点: 1. **断点续传**:当上传大文件时,可能会遇到网络中断或服务器故障。FTP支持断点续传...

Global site tag (gtag.js) - Google Analytics