/** 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上传单个文件的小程序,对ftp原理的简单研究; 下载的用户,请在linux下用gcc编译即可运行,没有特殊环境依赖。
以下是一段示例代码,展示了如何初始化libcurl,设置FTP上传参数,然后执行上传操作: ```cpp #include #include // 初始化libcurl curl_global_init(CURL_GLOBAL_DEFAULT); // 创建一个CURL句柄 CURL *curl = ...
本篇文章将详细探讨如何使用C#来实现指定单个文件的FTP上传功能。 FTP上传的核心在于建立与FTP服务器的连接,然后通过FTP命令将本地文件传输到远程服务器。在C#中,我们可以利用System.Net命名空间下的...
java ftp上传进行文件的读取和上传 上传单个文件的文件流 创建远程服务器目录 删除指定文件 上传单个文件 获取指定ftp目录下文件名
IOUtil则在整个过程中提供辅助的I/O操作,例如读取或写入本地文件,以及在FTP上传过程中创建临时文件或处理流。 这个流程涉及到的技能包括文件操作、流的管理和控制、网络编程(FTP协议)、数据格式处理(CSV)以及...
我们可以使用 uploadFile 方法来上传单个文件,该方法将文件上传到 FTP 服务器的指定目录下。 在 uploadFile 方法中,我们首先连接 FTP 服务器,然后将文件上传到 FTP 服务器的指定目录下。在上传文件时,我们需要...
使用System.Net.FtpWebRequest类上传单个文件的基本步骤如下: 1. 创建FtpWebRequest对象,指定FTP服务器地址、方法(通常为POST或STOR,用于上传)以及用户名和密码。 ```csharp FtpWebRequest request = ...
// 使用FTPClient的storeFile方法上传单个文件 } ``` 对于Log4j日志信息的读取,我们需要在程序中配置Log4j,并监听其输出。这通常涉及创建一个Appender,例如`org.apache.log4j.ConsoleAppender`,将日志输出到...
- 使用`Put`方法上传单个文件。例如,将本地文件`C:\local\file.txt`上传至FTP服务器的根目录: ``` FTP.Put('C:\local\file.txt', 'file.txt'); ``` - 若要上传整个文件夹,需要遍历文件夹内的所有文件,并...
对于单个文件的上传,可以使用`FtpWebRequest`的`GetRequestStream()`方法获取上传流,然后将文件内容写入该流。但是,我们的任务是上传整个文件夹,所以我们需要遍历文件夹中的所有文件并逐个上传。这里可以使用...
#### 三、C# WinForm FTP上传单个文件 在C# WinForm应用程序中,可以通过`FtpWebRequest`类实现FTP上传功能。下面是一个具体的示例代码: ```csharp public void UploadImg() { FileInfo fileInfo = new FileInfo...
QT5.7 FTP客户端是一个基于Qt库开发的用于FTP文件传输的应用程序,它支持基本的FTP操作,如单个文件的上传和下载,以及服务器端文件的删除功能。这个项目可能是一个独立的、轻量级的工具,适用于需要快速进行FTP操作...
8. **实例代码**: 提供的压缩包中可能包含几个示例,展示了不同场景下的FTP上传,例如上传单个文件、批量文件或者特定类型的文件(如图片)。这些实例可以帮助开发者更好地理解和应用FTP上传功能。 9. **多线程上传...
首先,Ftp_dll是一个动态链接库(DLL),它封装了FTP的相关功能,包括上传单个文件、整个文件夹,以及支持暂停、停止上传和获取上传速度等高级特性。DLL是Windows操作系统中的一种机制,它可以让多个程序共享同一段...
5. **删除单个文件**:FTP的DELE命令用于删除远程文件,对应的C#实现是通过FtpWebRequest的Method属性设置为"DELETE",然后发送请求。 6. **非空目录递归删除**:在FTP中,如果要删除包含子文件或子目录的目录,...
### 用Java实现FTP批量大文件上传下载的关键技术与实践 #### 一、项目背景与需求分析 在本文中,作者介绍了一项基于Java技术实现的FTP批量大文件上传下载的功能,旨在解决大规模工程项目中涉及的大文件批量传输...
在开发FTP客户端程序时,多线程和断点续传是两个重要的技术特性,它们能显著提高文件上传的效率和可靠性。 多线程技术允许FTP客户端同时执行多个任务,每个线程处理一部分工作。例如,在上传大文件时,可以将文件...
在这个场景下,"批量上传文件带进度条"主要涉及的技术点有Java编程语言、多线程、FTP文件传输协议以及用户界面(UI)的设计。 首先,Java是实现这个功能的主要编程语言。Java以其跨平台性和丰富的类库而被广泛使用...
同样,可以下载单个文件或批量下载。 3. **指定本地保存路径**:指定下载文件在本地的存储位置。 4. **断点续传**:如果文件较大,可能需要实现断点续传功能,以便在网络中断后从上次停止的地方继续下载。 在"FTP...
FTP上传大附件的关键在于正确设置和管理数据传输,因为大文件可能会超过单个TCP连接的最大传输限制。以下是一些重要的知识点: 1. **断点续传**:当上传大文件时,可能会遇到网络中断或服务器故障。FTP支持断点续传...