`
月亮不懂夜的黑
  • 浏览: 156063 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

FTP上传核心方法

 
阅读更多

核心处理FTP上传的方法

假如FTP不限制上传网速的话,基本能达到10M/s(局域网内)

/** 
     * 上传文件-FTP方式 
     * @param ftp FTPClient对象 
     * @param path FTP服务器上传地址 
     * @param filename 本地文件路径 
     * @param inputStream 输入流 
     * @return boolean 
     */  
    public boolean uploadFile(FTPClient ftp, String path, String fileName, InputStream inputStream) {  
        boolean success = false;  
        try {  
        	if (!ftp.changeWorkingDirectory(path)) {// 如果不能进入dir下,说明此目录不存在!  
        		FtpUtils.makeDirectory(path, ftp);
            }  
        	ftp.changeWorkingDirectory(path);
            
            FTPFile[] fs = ftp.listFiles();//得到目录的相应文件列表  
            fileName = FtpUtils.changeName(fileName, fs);  
            //转到指定上传目录  
            ftp.changeWorkingDirectory(path);  
            //将上传文件存储到指定目录  
            ftp.setFileType(FTP.BINARY_FILE_TYPE);
            ftp.setBufferSize(1024*1024);
            //如果缺省该句 传输txt正常 但图片和其他格式的文件传输出现乱码  
            BufferedInputStream bIs = new BufferedInputStream(inputStream);
            ftp.storeFile(fileName, bIs);  
            //关闭输入流  
            inputStream.close();  
            //退出ftp  
            ftp.logout();  
            //表示上传成功  
            success = true; 
            logger.debug("上传成功。。。。。。");
        } catch (Exception e) { 
        	logger.error("文件上传失败:" + e.getMessage());
            e.printStackTrace();  
        }  
        return success;  
    }  

 注意:以下代码是核心解决上传速度的

 ftp.setBufferSize(1024*1024);
 
 BufferedInputStream bIs = new BufferedInputStream(inputStream);

 

分享到:
评论

相关推荐

    FTP上传实例(带进度条)

    FTP上传的核心原理是通过FTP客户端连接到FTP服务器,然后将本地文件分块发送到服务器。在这个过程中,通过跟踪已上传的数据量与总数据量的比例,可以计算出当前的上传进度,并将其显示为进度条。 在实现这个功能时...

    Delphi Ftp上传程序

    Delphi FTP上传程序是使用Delphi7开发的一个应用程序,它实现了通过FTP(文件传输协议)将本地文件上传到远程服务器的功能。FTP是一种广泛用于互联网上的标准协议,允许用户在计算机之间传输文件。在这个项目中,...

    ftp上传程序(典型的ftp上传应用)

    "Auto_PowerMain"可能是一个自动化的主程序文件,负责执行FTP上传操作的核心逻辑。 总之,FTP上传程序是IT环境中常见的工具,用于便捷地将本地文件系统的内容发布到远程服务器。一个优秀的FTP上传程序应该具备易用...

    apache实现ftp上传

    apache实现ftp上传 Apache commons-net 库提供了一个功能强大且灵活的 FTP 客户端工具,能够满足各种 FTP 操作需求。在本文中,我们将探索如何使用 Apache commons-net 库实现 FTP 上传功能。 FTP 客户端工具 ...

    C++ libcurl ftp上传文件

    FTP上传文件的核心在于`curl_easy_setopt()`函数,它可以设置各种选项来定制FTP请求。首先,设置URL为FTP服务器的地址: ```cpp curl_easy_setopt(curl, CURLOPT_URL, "ftp://ftp.example.com/path/to/file"); ``` ...

    一个ftp上传下载类(MFC)

    FTP上传下载类的核心功能包括: 1. **连接与断开**:类应包含建立和断开FTP服务器连接的方法。`CFtpConnection`是MFC提供的FTP连接类,通过它可以创建到FTP服务器的连接。通常需要提供服务器地址、端口号(默认21)...

    java实现的ftp文件上传

    Java作为多平台支持的编程语言,提供了丰富的库和API来实现FTP文件上传功能。本篇文章将详细探讨如何使用Java实现FTP文件上传,以及相关类的作用。 首先,我们来看标题和描述中的关键词"java实现的ftp文件上传",这...

    pb ftp上传

    MFTPX.OCX很可能是这个FTP上传解决方案的核心组件,它包含了实现FTP通信所需的功能。在PowerBuilder中,开发者可以通过引用这个控件并调用其方法来实现文件的上传操作。使用OCX控件的优点在于它可以简化代码编写,...

    Ftp客户端实现:Ftp文件上传,Ftp文件加密,Ftp文件夹上传

    FTP客户端通常由以下几个核心组件构成: 1. **连接管理**:客户端需要与FTP服务器建立连接,这涉及到TCP/IP套接字的创建和关闭,以及登录认证过程(如用户名和密码的传递)。 2. **命令交互**:FTP协议基于命令行...

    vbs自动上传ftp

    ### vbs自动上传ftp知识点详解 #### 一、概述 在IT行业中,自动化脚本是提高工作效率的关键工具之一。Visual Basic Script(VBS)作为早期的一种脚本语言,因其简单易学,在Windows环境下有着广泛的应用场景。其中...

    FTP上传工具 FTP上传工具 FTP上传工具

    FTP上传工具的核心功能包括: 1. **连接管理**:用户可以保存和管理多个FTP服务器的登录信息,包括服务器地址、端口号、用户名和密码,方便快速连接到不同的FTP服务器。 2. **多线程传输**:支持同时上传或下载多...

    JAVA实现ftp上传,下载

    在Java中实现FTP上传,首先需要创建FTPClient对象,然后连接到FTP服务器,登录后设置工作目录。将要上传的文件转换为二进制流,并调用`storeFile()`方法。注意处理异常和确保文件传输完成后关闭流。 四、FTP下载 ...

    java源码 E4A通过FTP上传数据到服务器例程 2018127

    本例程"java源码 E4A通过FTP上传数据到服务器"展示了如何在E4A(Easy4Android)环境下利用Java实现FTP文件上传功能。E4A是基于Java的一种简单易用的安卓应用开发工具,它允许开发者用类似于Basic的语法编写安卓应用...

    萤石云摄像头自动截图以及FTP上传

    萤石云摄像头自动截图以及FTP上传是一个集成自动化与远程存储功能的系统,它结合了现代监控设备的技术优势,为用户提供了一种高效、便捷的方式来管理和获取摄像头捕获的图像。在这个系统中,萤石云摄像头扮演着核心...

    FTP文件上传和下载管理类(C++)

    FTPManager类是这个压缩包的核心,它封装了FTP协议的相关操作,使得在C++程序中使用FTP变得更加简单。FTPManager.cpp和FTPManager.h分别代表了类的实现和声明。在C++中,头文件(.h或.hpp)通常包含类定义、函数原型...

    FTP上传与下载pb9.0code

    标题“FTP上传与下载pb9.0code”指的是使用PowerBuilder 9.0(简称PB9)开发的一个程序,该程序实现了FTP(File Transfer Protocol)的上传和下载功能。PowerBuilder是一款强大的可视化编程工具,特别适合于构建...

    C# FTP上传及进度条的实现

    本篇文章将详细讲解如何在C# 2.0中实现FTP上传功能,并结合进度条展示上传进度,为用户提供更好的交互体验。 首先,我们需要引入System.Net命名空间,其中包含了FtpWebRequest和FtpWebResponse类,这两个类是进行...

    FTP上传客户端【源码】

    在这个FTP上传客户端的源码中,我们关注的核心知识点主要包括FTP协议的工作原理、客户端实现、目录扫描、保持目录结构、配置路径以及实时文件上传状态显示。 1. FTP协议工作原理:FTP基于TCP/IP协议族,提供双向...

    API实现FTP上传.rar

    源码可能包含如“FTP连接”、“FTP登录”、“FTP选择目录”、“FTP上传文件”等函数或方法。 在实际开发中,开发者可能还会考虑错误处理,比如网络中断、认证失败等情况,并且可能会有重试机制来提高文件上传的可靠...

    java多线程学习-ftp上传

    在这个场景下,Java多线程技术可以用于优化FTP上传的效率,例如通过并发上传多个文件来加速整个过程。 首先,我们来了解一下Java中的线程。在Java中,Thread类是所有线程的基类,通过创建Thread对象并调用其start()...

Global site tag (gtag.js) - Google Analytics