`

Apache FTPClient上传文件时的问题及解决

    博客分类:
  • J2SE
阅读更多

用Apache的FTPClient上传文件时发现一个问题,就是上传txt文件没问题,但上传zip文件时文件会被破坏,查了一下原因,原来是这样:

因为RFC 959中规定了缺省的传输模式应该是ASCII的,org.apache.commons.net.ftp.FTPClient实现也遵守此标准。所以 org.apache.commons.net.ftp.FTPClient在缺省情况下是按ASCII形式进行传输的,如果你是传输的BINARY二进 制文件(如zip),那么上传完后的文件就会被破坏,但是传输ASCII文件(如txt)是没有问题的。
 
所以如果你是传输的BINARY二进制文件的话,就需要在建立连接、登陆后,接下来设置文件类型,代码示例如下:
ftpclient.connect(host);
ftpclient.login(user, password);
ftpclient.setFileType(FTPClient.BINARY_FILE_TYPE);

这下就OK啦!

分享到:
评论

相关推荐

    使用FTPClient实现ftp文件上传

    FTPClient提供`storeFile()`方法来上传文件。在上传前,确保文件已经完全打开并准备就绪: ```java File localFile = new File("path/to/local/file"); OutputStream outputStream = ftpClient.storeFileStream(...

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

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

    apache FTPClient commons-net-3.5-src.rar

    同时,对于希望优化FTPClient性能或解决特定场景问题的开发者来说,源码阅读是非常有价值的。 此外,压缩包中还有其他版本的jar文件(如`commons-net-3.1.jar`和`commons-net-1.4.1.jar`)和源码(`commons-...

    调用FtpClient类上传文件(java)

    以下是一个简单的使用`FtpClient`上传文件的Java代码示例: ```java import org.apache.commons.net.ftp.FTP; import org.apache.commons.net.ftp.FTPClient; import java.io.FileInputStream; import java.io....

    FTPClient 文件上传

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

    java FTPClient 文件上传下载文件

    根据给定的部分内容,我们可以看到一个名为`uploadFile`的方法示例,用于上传文件至FTP服务器: ```java public static boolean uploadFile(String url, int port, String username, String password, String path, ...

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

    在本文中,我们将深入探讨如何使用`org.apache.commons.net.ftp.FTPClient`包来实现简单的文件下载功能。这个过程涉及到几个关键步骤,包括连接到FTP服务器、登录、设置传输模式、下载文件以及断开连接。 首先,你...

    JAVA中使用FTPClient上传下载

    下面是一个完整的使用FTPClient上传文件的示例函数: ```java public static boolean uploadFile(String url, int port, String username, String password, String path, String filename, InputStream input) { ...

    Apache的FTPClient.jar

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

    apache java ftpclient

    然后使用`FTPClient.storeFile()`方法上传文件。 4. **文件下载** 下载文件的过程类似,但使用`FTPClient.retrieveFile()`方法。确保文件输出流正确设置,以便将下载的数据写入本地文件。 5. **查看远程目录** ...

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

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

    FTPClient上传下载(支持断点续传)

    ### FTPClient上传下载功能详解及断点续传技术解析 #### 一、FTPClient简介 FTP(File Transfer Protocol)是一种用于在网络上进行文件传输的标准协议,主要用于在不同主机之间传输文件。`FTPClient`是Apache ...

    JAVA中使用FTPClient上传下载.doc

    代码示例展示了如何使用FTPClient上传文件。方法`uploadFile()`接收FTP服务器的相关信息(如URL、端口、用户名、密码、路径、文件名和输入流),并尝试进行文件上传。如果所有操作成功,该方法返回true;否则,返回...

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

    本文将详细讲解三种常用的FTP客户端库——Apache.FTPClient、ftp4j及jftp,并以Apache.FTPClient为例,深入探讨其使用方法。 #### 一、Apache.FTPClient简介 Apache Commons Net是Apache项目下的一个开源工具包,...

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

    在Java编程中,大文件上传至FTP(File Transfer Protocol)服务器是一项常见的任务,尤其是在处理大量数据传输时。这个场景中,我们关注的重点是如何在上传过程中显示进度条,并确保该进度条与FTP上传的速度同步,以...

    Java中FTPClient上传中文目录、中文文件名乱码问题解决方法

    通过以上两种方式,可以有效地解决Java使用FTPClient在处理中文目录和文件名时出现的乱码问题。在实际开发中,还需要注意确保服务器和客户端的编码设置一致,以避免其他可能出现的编码问题。同时,考虑到UTF-8编码的...

    apache FTP 工具类

    Apache FTP工具类主要指的是Apache Commons Net库中的FTPClient类,这是一个强大的Java库,用于执行FTP(文件传输协议)操作。Apache Commons Net提供了多种FTP相关的工具类,使得在Java环境中进行FTP交互变得更加...

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

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

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

    以下是使用ftp4j上传文件的示例: ```java import it.sauronsoftware.ftp4j.*; FTPClient client = new FTPClient(); client.connect("ftp.server.com"); client.login("username", "password"); FTPFileUpload ...

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

    为了解决这个问题,我们可以使用对象池技术来实现 FTPClient 对象的复用。对象池是一种机制,可以管理对象池中对象的生命周期,提供了获取和释放对象的方法,让客户端可以方便地使用对象池中的对象。 在 Spring ...

Global site tag (gtag.js) - Google Analytics