`
zzq19860626
  • 浏览: 264211 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
博客专栏
B20df9e2-fb3d-3644-9f72-c1619842f682
设计模式学习笔记
浏览量:179902
87eaf24f-812a-3463-8e65-e3197d2ad8c2
java虚拟机
浏览量:26583
社区版块
存档分类
最新评论

apache ftpClient 文件上传

    博客分类:
  • java
阅读更多

 

最近做ftp上传遇到问题,最终解决,现在分享给大家。

这里有四点:

1、将字符串转换成输入流

String s = "this is my test string 中国";
//将字符串转换成输入流
ByteArrayInputStream fis = new ByteArrayInputStream(s.getBytes());

 2、设置编码

ftp.setControlEncoding("GBK");

 3、设置为被动模式

ftp.enterLocalPassiveMode();

 4、上传和下载文件名称编码,当文件名为中文时,上传下载可能需要编码

//上传文件名称
boolean fb = ftp.storeFile(new String("test中文.csv".getBytes("GBK"),"iso8859-1"), fis);

 

最终测试代码如下:

package ftpTest;

import java.io.ByteArrayInputStream;
import java.io.IOException;
import org.apache.commons.net.ftp.FTPClient;
public class ApacheFtpTest {
	/**
	 * @param args
	 * @throws IOException
	 */
	public static void main(String[] args) throws IOException {
		String s = "this is my test string 中国";
		//将字符串转换成输入流
		ByteArrayInputStream fis = new ByteArrayInputStream(s.getBytes());
		FTPClient ftp = new FTPClient();
		//host,端口
		ftp.connect("127.0.0.1", 21);
		//必须设置,上传非iisc文件,如果不设置默认是iisc码格式传输,导致文件坏死
		ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
		//如果遍历文件名乱码,请设置为GBK,或者你需要的编码
		ftp.setControlEncoding("GBK");
		//超时时间必须设置,方式长时间连接没响应
		ftp.setControlKeepAliveReplyTimeout(15000);
		ftp.setConnectTimeout(15000);
		ftp.setControlKeepAliveTimeout(15000);
		//设置被动模式,在很多情况下由于防火墙等原因,主动模式不支持。
		ftp.enterLocalPassiveMode();
		//帐户密码
		ftp.login("帐户", "密码");
		System.out.println("login success");
		//服务器路径
		ftp.changeWorkingDirectory("/");
		//上传文件名称
		ftp.storeFile("test.txt", fis);
                //上传文件名称
		//boolean fb = ftp.storeFile(new String("test中文.csv".getBytes("GBK"),"iso8859-1"), fis);
		ftp.logout();
	}

}

 

 

分享到:
评论

相关推荐

    apache FTPClient commons-net-3.5-src.rar

    FTPClient是其中的核心部分,提供了一系列接口和方法,使开发者能够方便地与FTP服务器交互,完成文件上传、下载、删除、重命名等操作。 FTPClient的主要功能包括: 1. **连接管理**:创建到FTP服务器的连接,登录和...

    java FTPClient 文件上传下载文件

    ### Java FTPClient 文件上传下载知识点详解 #### 一、引言 在现代软件开发中,文件传输是一项基本而重要的功能。对于Java开发者来说,利用Java的FTPClient进行文件的上传和下载是常见的需求之一。本篇文章将围绕...

    FTPClient 文件上传

    我用的FTPClient是由Apache组织的commons-net.jar包中的API,这个包用起来非常的方便,很容易上手。我在项目开发的过程中主要用到了文件的上传功能,希望大家能学的一些东西

    用org.apache.commons.net.ftp.FTPClient包实现简单文件下载

    通过理解上述代码和相关API,开发者可以构建自己的FTP客户端,实现更复杂的文件上传、下载和管理功能。Apache Commons Net库不仅提供了FTPClient,还包括对其他网络协议的支持,是Java开发中的强大工具。

    使用FTPClient实现文件的上传下载

    这篇博客“使用FTPClient实现文件的上传下载”显然关注的是如何利用编程接口FTPClient来执行FTP操作,如上传和下载文件。FTPClient是Apache Commons Net库的一部分,它为Java开发者提供了方便的API来实现FTP功能。 ...

    调用FtpClient类上传文件(java)

    本主题将深入探讨如何使用`FtpClient`类从Apache Commons Net库来实现文件上传功能。Apache Commons Net提供了丰富的FTP操作接口,使得开发者能够方便地执行包括上传、下载、删除等在内的各种FTP操作。 首先,我们...

    Apache的FTPClient.jar

    4. 文件传输:`FTPClient.retrieveFile(String remote, OutputStream local)`用于从服务器下载文件,`FTPClient.storeFile(String remote, InputStream local)`用于上传文件。 5. 文件管理:可以使用`FTPClient....

    使用FTPClient实现ftp文件上传

    总之,通过Apache Commons Net的FTPClient,我们可以方便地在Java应用中实现FTP文件上传,并通过设置正确的字符集来处理中文文件名。记住,确保正确处理连接、登录、错误处理和资源释放,以确保程序的稳定性和可靠性...

    apache java ftpclient

    3. **使用FTPClient进行文件上传** 要上传文件,首先需要创建FTPClient实例,然后连接到FTP服务器。接着,通过`FTPClient.connect()`方法建立连接,并使用`FTPClient.login()`方法登录。调用`FTPClient.setFileType...

    Java常用FTP文件操作说明 Apache.FTPClient,ftp4j,jftp

    使用Apache FTPClient,你可以执行基本的FTP操作,如登录服务器、改变工作目录、上传和下载文件、断点续传等。以下是一个简单的示例: ```java import org.apache.commons.net.ftp.*; FTPClient client = new ...

    Java常用FTP文件操作说明Apache.FTPClient,ftp4j,jftp

    jftp是一个轻量级的FTP客户端库,支持基本的FTP操作,如文件上传、下载等。它的API设计直观,易于理解和使用。 ##### 基本使用 ```java import org.apache.commons.net.ftp.FTPClient; public class JFtpExample ...

    org.apache.commons.net.ftp.FTPClient FTP工具类,实现上传、下载、压缩到输出流下载等功能

    org.apache.commons.net.ftp.FTPClient FTP工具类,实现上传、下载、压缩到输出流下载等功能

    apache FTP 工具类

    文件上传与下载** 文件的上传和下载是FTP操作的重要部分: - `FTPClient.storeFile(String remote, InputStream local)`:将本地文件流上传到远程服务器 - `FTPClient.retrieveFile(String remote, OutputStream ...

    获取FTP服务器上的文件大小源码

    通过FTP,用户可以连接到远程服务器,进行文件的上传、下载、查看属性等操作。本篇文章将详细讲解如何编写源码来获取FTP服务器上的文件大小,这对于监控服务器存储空间或者自动化任务是非常实用的。 首先,我们需要...

    JAVA FTPClient文件操作

    以下是对`JAVA FTPClient文件操作`的详细说明: ### FTP基础知识 FTP是一种用于在网络上传输文件的标准协议,基于TCP/IP网络。它允许用户在本地计算机和远程服务器之间交换文件。FTP有两种模式:主动模式(Port)和...

    Spring Boot整合FTPClient线程池的实现示例

    FTPClient 是一个基于 Java 的 FTP 客户端库,提供了丰富的 FTP 操作 API,例如上传、下载、删除文件等。然而,在高并发场景下,频繁创建和销毁 FTPClient 对象可能会对服务器造成很大的压力。 为了解决这个问题,...

    Java常用FTP文件操作说明Apache.FTPClient,ftp4j,jftp.pdf

    在Java中,进行FTP(File Transfer Protocol)文件操作时,通常会使用第三方库,如Apache的FTPClient、ftp4j和jftp等。本文将主要讲解如何使用Apache的FTPClient库进行FTP文件操作。 Apache.FTPClient是一个功能...

    JAVA中使用FTPClient上传下载

    在Java中使用FTPClient进行文件上传与下载是一个常见的需求,特别是在需要远程管理文件或数据交换的场景下。本文将深入探讨如何使用Java中的FTPClient库实现这一功能,并提供详细的代码示例与解释。 ### FTPClient...

    java大文件上传至ftp服务器带进度条显示的

    在Java中,我们可以使用`java.net`或`org.apache.commons.net`库来实现FTP文件上传。Apache Commons Net库提供了丰富的FTP功能,包括文件上传、下载、目录管理等,同时它也支持断点续传,对于大文件上传非常实用。 ...

Global site tag (gtag.js) - Google Analytics