`
madinggui
  • 浏览: 10898 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

ftp上传文件

    博客分类:
  • java
阅读更多
在一般的web应用中,文件上传可以分为两类(ftp上传和http上传)。其中http上传是在页面的form表单中加入<input   type=“file“   name=“file“>类型的接口,当表单被提交时,file中所指的文件就会被写入request对象中。那么在服务器端,用户只要根据   rfc1867协议解析request中的数据流就可以得到文件,但是这样上传的速度很慢了,并且对文件的大小又要求。相比之下,ftp上传就很优越了。他是ftp客户端直接与ftp服务器进行交互,将文件创传到ftp服务器。当然,ftp客户端已经被实现。下面我们就应用第三方ftp客户端实现ftp上传。  
   
            首先,从www.enterprisedt.com下载ftp客户端。整个应用公有五个类组成Upload.java,FileUpload.java,DirectoryUpload.java,Directory.java,UploadException.java.希望大家改进。  
   
  /*  
    *   @(#)Upload.java   1.0   04/11/17  
    *   实现上传前的初始化  
    */  
  package   com.head.upload;  
   
  //调用第三方ftp客户端,可在www.enterprisedt.com下载  
  import   com.enterprisedt.net.ftp.*;  
  import   java.io.*;  
   
   
  public   class   Upload   {  
       
        static   FTPClient   ftpClient;  
        static   String   path;  
   
          //ftp服务器的ip地址,登陆用户和密码  
        String   remoteAddress="127.0.0.1",userName="xie",password="xie";  
       
       
        Upload(){}  
       
          Upload(String   path){  
              this.path   =   path;  
          }  
           
          public   boolean   config(String   fileName)   throws   UploadException   {  
              //从配置文件中读取远端地址,用户名和密码(没实现)  
              return   false;        
          }  
       
          public     void   init()   throws   UploadException   {  
                try{          
                  ftpClient   =   new   FTPClient(this.remoteAddress);  
                    ftpClient.login(this.userName,this.password);  
                    ftpClient.setConnectMode(FTPConnectMode.PASV);  
                    ftpClient.setType(FTPTransferType.BINARY);  
                }catch(Exception   e)  
                {  
                  throw   new   UploadException(e.toString(),"Upload.init()");  
                }  
           
          }  
         
   
          public   boolean   upload()   throws   UploadException   {  
            File   file   =   null;  
            boolean   flag   =   false;  
            try{  
                init();  
               
                file   =   new   File(path);  
                if(file.isFile()   &&   new   FileUpload().uploadFile())                
                      flag   =   true;  
                else   if(file.isDirectory()   &&   new   DirectoryUpload().uploadFile(path))  
                      flag   =   true;  
                  }catch(Exception   e)  
            {  
                        throw   new   UploadException(e.toString(),"Upload.upload()");            
            }  
            finally{  
              clear(ftpClient);  
            }  
            return   flag;  
          }  
         
         
          boolean   clear(FTPClient   ftpClient)   throws   UploadException   {  
                try{  
                    ftpClient.quit();  
                    return   true;  
                }catch(Exception   e)  
                {  
                  throw   new   UploadException(e.toString(),"Upload.clear(ftpClient)");  
                }  
          }  
         
                    }      
  }  
   
   
  /*  
    *   @(#)FileUpload.java   1.0   04/11/17  
    *  
    *   上传单个文件  
    */  
  package   com.head.upload;  
   
  import   com.enterprisedt.net.ftp.*;  
  import   java.io.*;  
   
   
  public     class   FileUpload   extends   Upload   {  
     
   
     
    FileUpload(){}  
                           
         
          public   boolean   uploadFile()   throws   UploadException{  
                //the   name   of   file   will   be   changed   to   avoid   iteration  
                String   fileName   =   path.substring(path.lastIndexOf("\\")+1);  
                try{          
                    ftpClient.put(path,fileName);  
                    return   true;        
                }catch(Exception   e){  
                    throw   new   UploadException(e.toString(),"FileUpload.uploadFile()");              
                }  
          }  
         
          public   boolean   uploadFile(String   name)   throws   UploadException{  
                //the   name   of   file   will   be   changed   to   avoid   iteration  
                String   fileName   =   name.substring(name.lastIndexOf("\\")+1);  
                try{    
                    ftpClient.put(name,fileName);  
                    return   true;        
                }catch(Exception   e){  
                    throw   new   UploadException(e.toString(),"FileUpload.uploadFile(name)");              
                }  
          }  
         
       
    }
分享到:
评论

相关推荐

    Labview FTP上传文件

    Labview FTP上传文件是利用Labview(Laboratory Virtual Instrument Engineering Workbench)这一强大的图形化编程环境,通过FTP(File Transfer Protocol)协议实现文件的远程传输。FTP是一种标准网络协议,用于在...

    FTP上传文件

    在给定的代码示例中,我们详细探讨了如何使用Java编程语言实现FTP上传文件的功能。 ### 一、FTP上传文件的基本概念 FTP协议由两部分组成:控制连接和数据连接。控制连接用于发送命令和接收响应,而数据连接则用于...

    实现VB FTP上传文件

    使用`STOR`命令上传文件。首先,设置本地文件路径和FTP服务器上的目标路径,然后发送`STOR`命令: ```vb Dim localFilePath As String = "C:\local\file.txt" Dim remoteFilePath As String = "/public_...

    C++ libcurl ftp上传文件

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

    php处理ftp上传文件

    ### PHP处理FTP上传文件知识点详解 #### 一、利用PHP内置文件函数实现文件上传 **1.1 上传文件表单设计(upload.html)** 在实现文件上传功能时,首先需要设计一个表单用于接收用户的文件输入。在这个例子中,`...

    C语言实现FTP上传文件(支持windows和linux)

    以下是实现FTP上传文件的基本步骤: 1. **初始化libcurl**:首先,我们需要调用`curl_global_init()`函数对libcurl进行全局初始化。 2. **创建会话句柄**:使用`curl_easy_init()`创建一个CURL对象,这将作为我们...

    asp.net利用ftp上传文件实现示例代码

    以下是一个简单的FTP上传文件的步骤: 1. **创建FtpWebRequest对象**:首先,我们需要创建一个`FtpWebRequest`实例,设置其`Method`属性为`WebRequestMethods.Ftp.UploadFile`,并指定FTP服务器的URL和文件路径。 ...

    winfrom连接FTP上传文件

    下面是一个简单的FTP连接和上传文件的步骤: 1. **建立FTP连接**:创建一个`FtpWebRequest`对象,设置其`Method`属性为`WebMethod.UploadFile`,并指定FTP服务器的URL、用户名和密码。 ```csharp FtpWebRequest ...

    定时ftp上传文件

    在IT行业中,定时FTP上传文件是一项常见的自动化任务,尤其对于监控、数据分析或者备份等场景尤为重要。这个任务涉及到几个关键知识点,下面将详细讲解。 首先,我们要理解“定时”这一概念。在计算机领域,定时...

    Android 通过ftp上传文件获取上传速度及进度

    3. **文件上传**:使用`FTPClient`的`storeFile()`方法上传文件,并在此过程中计算上传速度和进度。首先,打开本地文件: ```java FileInputStream fis = new FileInputStream(localFilePath); ``` 然后,使用`...

    java使用FTP上传文件

    java使用FTP上传文件,非常实用 包括创建ftp链接,上传

    VB实现FTP上传文件功能

    可以实现文件上传功能,并能检索到FTP目前的目录

    3dMax脚本开发的FTP上传文件工具下载

    标题提到的“3dMax脚本开发的FTP上传文件工具”就是通过Maxscript编写的一个实用工具,它使得3DMax用户能够方便地将工作成果上传到FTP服务器。 FTP(File Transfer Protocol)是一种网络协议,用于在网络上进行文件...

    c# 实现文件FTP上传服务器

    c# 实现文件FTP上传至服务器  WebClient上传文件至服务器(不带进度条)    要上传的文件(全路径格式)  &lt;param name="strUrlDirPath"&gt;Web服务器文件夹路径  &lt;returns&gt;True/False是否上传成功&lt;/returns&gt;

    springboot以FTP方式上传文件到远程服务器的流程

    Spring Boot 中使用 FTP 上传文件到远程服务器的流程 在本文中,我们将介绍如何使用 Spring Boot 实现 FTP 上传文件到远程服务器的流程。这个流程包括如何使用 JWT 登录认证及鉴权的流程,以及如何使用 Spring ...

    windows上cmd用ftp简单上传文件

    indows的cmd里用ftp命令可以上传文件到ftp服务器,呀,有点惊讶啊此时用put命令,就会把本地ceshi.jpg图片文件推上 使用put命令时所在路径,你可以在使用put命令前用下pwd查看下路径。

    Ftp上传文件和文件夹

    现在让我们深入探讨如何在C#中实现FTP上传文件和文件夹。 首先,要进行FTP上传,我们需要准备以下基本要素: 1. FTP服务器地址:这是你的文件将被上传到的位置,通常以`ftp://`开头。 2. 用户名和密码:用于验证...

    FTP上传文件帮助类

    在这个主题中,我们将深入探讨FTP上传文件的相关知识点,以及如何利用提供的代码实现FTP上传、下载和删除功能。 1. FTP基本概念: FTP是Internet上的标准服务之一,它允许用户从一台计算机(客户端)将文件传输到另...

    java实现的ftp文件上传

    - **上传文件**:调用`FTPClient.storeFile()`或`FTPClient.uploadFile()`方法上传文件。 - **断开连接**:最后,记得调用`FTPClient.logout()`和`FTPClient.disconnect()`断开连接并释放资源。 在开发过程中,还...

    自动化Ftp上传文件工具

    一个简单的命令行实现ftp上传文件或者文件夹 到ftp多个目录下的工具 平时经常会要上传一个文件或者将一个文件夹下面的文件到ftp上面多个目录下,每次都要花费很多时间切换目录,很是麻烦,而且容易出错或者遗漏上传...

Global site tag (gtag.js) - Google Analytics