`
no_bao
  • 浏览: 315878 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Ftp上传文件客户端java代码

    博客分类:
  • java
阅读更多
package ftp;

import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;

import sun.net.TelnetInputStream;
import sun.net.TelnetOutputStream;
import sun.net.ftp.FtpClient;

public class FtpClientUtil {
FtpClient ftpClient;
private String server;
private int port;
private String userName;
private String userPassword;

public FtpClientUtil(String server,int port,String userName,String userPassword)
{
  this.server=server;
  this.port=port;
  this.userName=userName;
  this.userPassword=userPassword;
}
/**
  * 链接到服务器
  * @return
  */
public boolean open()
{
  if(ftpClient!=null&&ftpClient.serverIsOpen())
   return true;
  try
  {
      ftpClient= new FtpClient();
      ftpClient.openServer(server,port);
      ftpClient.login(userName, userPassword);
      ftpClient.binary();
      return true;
  }
  catch(Exception e)
  {
   e.printStackTrace();
   ftpClient=null;
   return false;
  }
}

public boolean cd(String dir){
  boolean f = false;
  try {
   ftpClient.cd(dir);
  } catch (IOException e) {
 
   return f;
  }
  return true;
}

/**
  * 上传文件到FTP服务器
  * @param localPathAndFileName 本地文件目录和文件名
  * @param ftpFileName  上传后的文件名
  * @param ftpDirectory FTP目录如:/path1/pathb2/,如果目录不存在回自动创建目录
  * @throws Exception
  */
public boolean upload(String localDirectoryAndFileName,String ftpFileName,String ftpDirectory)throws Exception {
  if(!open())
   return false;
  FileInputStream is=null;
  TelnetOutputStream os=null;
  try
  {
   char ch = ' ';
   if (ftpDirectory.length() > 0)
    ch = ftpDirectory.charAt(ftpDirectory.length() - 1);
   for (; ch == '/' || ch == '\\'; ch = ftpDirectory.charAt(ftpDirectory.length() - 1))
    ftpDirectory = ftpDirectory.substring(0, ftpDirectory.length() - 1);

   int slashIndex = ftpDirectory.indexOf(47);
   int backslashIndex = ftpDirectory.indexOf(92);
   int index = slashIndex;
   String dirall = ftpDirectory;
   if (backslashIndex != -1 && (index == -1 || index > backslashIndex))
    index = backslashIndex;
   String directory = "";
   while (index != -1) {
    if (index > 0) {
     String dir = dirall.substring(0, index);
     directory = directory + "/" + dir;
     ftpClient.sendServer("XMKD " + directory + "\r\n");
     ftpClient.readServerResponse();
    }
    dirall = dirall.substring(index + 1);
    slashIndex = dirall.indexOf(47);
    backslashIndex = dirall.indexOf(92);
    index = slashIndex;
    if (backslashIndex != -1 && (index == -1 || index > backslashIndex))
     index = backslashIndex;
   }
   ftpClient.sendServer("XMKD " + ftpDirectory + "\r\n");
   ftpClient.readServerResponse();

   os = ftpClient.put(ftpDirectory + "/"
     + ftpFileName);
   File file_in = new File(localDirectoryAndFileName);
   is = new FileInputStream(file_in);
   byte bytes[] = new byte[1024];
   int i;
   while ((i = is.read(bytes)) != -1)
    os.write(bytes, 0, i);
   //清理垃圾
  
   
   return true;
  }
  catch(Exception e)
  {
   e.printStackTrace();
   return false;
  }
  finally
  {
   if (is != null)
      is.close();
   if (os != null)
      os.close();
  }
}
/**
  * 从FTP服务器上下载文件并返回下载文件长度
  * @param ftpDirectoryAndFileName
  * @param localDirectoryAndFileName
  * @return
  * @throws Exception
  */
public long download(String ftpDirectoryAndFileName,String localDirectoryAndFileName)throws Exception
{
  long result = 0;
  if(!open())
   return result;
  TelnetInputStream is = null;
  FileOutputStream os = null;
  try 
  {
        is = ftpClient.get(ftpDirectoryAndFileName);       
        java.io.File outfile = new java.io.File(localDirectoryAndFileName);
        os = new FileOutputStream(outfile);
        byte[] bytes = new byte[1024];
        int c;
        while ((c = is.read(bytes)) != -1)
        {
            os.write(bytes, 0, c);
            result = result + c;
        }
     }
  catch (Exception e) 
  {
         throw e;
  }
  finally
  {
      if (is != null)
        is.close();
      if (os != null)
        os.close();
     
   }
      return result;
}
/**
  * 返回FTP目录下的文件列表
  * @param ftpDirectory
  * @return
  */
  public List<String> getFileNameList(String ftpDirectory)
  {
     List<String> list = new ArrayList<String>();
     if(!open())
   return list;
     try 
     {
        DataInputStream dis = new  DataInputStream(ftpClient.nameList(ftpDirectory));
        String filename = "";
        while((filename=dis.readLine())!=null)  
        {
          list.add(filename);        
        }  
     } catch (Exception e) 
     {
        e.printStackTrace();
     }
     return list;
  }
  /**
   * 删除FTP上的文件
   * @param ftpDirAndFileName
   */
  public boolean deleteFile(String ftpDirAndFileName)
  {
   if(!open())
   return false;
   ftpClient.sendServer("DELE "+ftpDirAndFileName+"\r\n");
   return true;
  }
  /**
   * 删除FTP目录
   * @param ftpDirectory
   */
  public boolean deleteDirectory(String ftpDirectory)
  {
   if(!open())
   return false;
   ftpClient.sendServer("XRMD "+ftpDirectory+"\r\n");
   return true;
  }
  /**
   * 关闭链接
   */
  public void close()
  {
   try
   {
       if(ftpClient!=null&&ftpClient.serverIsOpen())
        ftpClient.closeServer();
   }catch(Exception e)
   {
   
   }
  }
 
  public static void main(String[] args) throws UnsupportedEncodingException {
  FtpClientUtil ftp=new FtpClientUtil("192.168.20.29",21,"uname","upass");
  List<String> list=ftp.getFileNameList("/1111/");
  for (String s:list) {
String ss= new String(s.getBytes("ISO-8859-1"),"GBK");
System.out.println(ss);
}
}
  }
分享到:
评论

相关推荐

    基于Java的FTP客户端源代码

    总之,Java FTP客户端源代码提供了一个平台,让你可以利用Java的强大力量来实现文件的上传、下载和管理。通过学习和实践,你将能够掌握FTP通信的核心概念,并将这些知识应用到你的项目中,提升你的开发技能。

    FTP客户端的JAVA代码---网络课程设计

    至少实现conn(连接)、list(列示文件)、retr(下载)、store(上载)的功能。 2.3 接收服务器的操作结果。 3.用户界面:客户端界面用户可以设置远程主机名、用户和密码;显示远程文件列表;显示本地文件的列表;...

    ftp客户端11.rar_JAVA访问 FTP_ftp客户端_ftp客户端 java_java ftp客户端_java 上传下载

    在`ftpclient.txt`文件中,可能包含了一个简单的Java FTP客户端实现代码示例,演示了如何连接FTP服务器、上传和下载文件。通常,一个基本的FTP客户端程序会包含以下步骤: 1. 创建`FTPClient`对象。 2. 连接服务器,...

    javaFTPclient.rar_Ftp客户端__ftp_ftp客户端_ftp客户端 java_java ftp客户端

    Java FTP 客户端是基于Java编程语言实现的FTP(File Transfer Protocol)应用程序,用于连接到FTP服务器并执行...如果要深入了解这个Java FTP客户端,你需要解压文件并查看其中的内容,或者查找相关的源代码和文档。

    ftp.zip_FTP客户端程序_ftp_ftp java_ftp客户端 java_java ftp客户端

    在这个名为"ftp.zip"的压缩包中,包含了一个FTP客户端程序,它使用Java编程语言编写,能够帮助用户实现文件的上传和下载功能。这个客户端程序非常实用,因为只需要安装JDK(Java Development Kit)就可以运行,无需...

    ftp.rar_FTP CLIENT_ftp java_ftp客户端_ftp客户端 java_客户端

    Java代码会包含处理上传和下载的逻辑,包括设置传输模式(ASCII或二进制),打开数据连接,读写文件,并跟踪传输进度。 6. **异常处理**:由于网络问题或服务器响应错误,FTP操作可能会失败。因此,良好的错误处理...

    jftp.rar_ftp_ftp客户端 java_j-ftp_java client_java ftp

    Java FTP客户端是用Java语言实现的能够连接到FTP服务器并执行各种文件操作的程序。"J-FTP"是这样的一个客户端,它提供了友好的用户界面和丰富的功能,方便开发者或普通用户在Java环境中与FTP服务器交互。 在Java中...

    java_ftp2.zip_FTP客户端程序_ftp_ftp java_ftp客户端 java_java ftp客户端

    为了深入理解并运行这个Java FTP客户端程序,你需要解压文件,查看源代码(如果存在),理解配置文件的格式,并根据需要配置服务器信息。如果你对Java编程和FTP协议有基础,那么分析和运行这个程序将会是一项有趣的...

    java编写的ftp文件实时监控下载上传

    用java语言编写的ftp小工具,可以按指定时间监控ftp服务器,把服务器指定目录内新产生的文件或者文件夹下载到本地指定文件夹,下载后删除数据。 也可以监控本地文件夹,把文件夹内新产生的文件或者文件夹整体上传到...

    java ftp客户端,服务端

    Java FTP 客户端和服务端的开发涉及到网络编程和文件传输协议的重要概念。FTP(File Transfer Protocol)是一种标准网络协议,用于在计算机之间交换文件。Java作为一种通用的、面向对象的编程语言,提供了丰富的库来...

    FTP客户端源代码

    FTP客户端源代码是一种用于与FTP(文件传输协议)服务器交互的应用程序,允许用户上传、下载文件或管理远程服务器上的文件。在本项目中,我们关注的是一个专为Windows平台设计的FTP客户端,它使用Java语言编写,并且...

    JAVA FTP 文件传输 服务端 客户端

    以下是一个简单的FTP客户端上传文件的Java代码示例: ```java import org.apache.commons.net.ftp.FTP; import org.apache.commons.net.ftp.FTPClient; public class FtpTest { public static void main(String[]...

    java_ftp.rar_FTP客户端 java_ftp_ftp java_java ftp_java_ftp

    这个压缩包中的FTP客户端可能包含了创建连接、登录、列出目录、上传、下载、删除文件等基本操作的实现。 FTP服务端则负责接收客户端的请求,并执行相应的操作。在Java中,实现FTP服务器并不常见,因为这需要对FTP...

    FTP.rar_FTP 服务端_ftp 客户 端与 服务端_ftp客户端 java_java ftp客户端

    在Java中,`FTPClient.java`文件可能是一个示例代码,展示了如何连接到FTP服务器,进行身份验证,列举远程目录,以及读写文件。Apache Commons Net库同样提供了FTPClient类,方便开发者实现这些功能。 FTP客户端和...

    java实现的ftp文件上传

    标签"java ftp 上传 文件"进一步明确了我们将关注Java FTP客户端的文件上传操作。Apache Commons Net库中的`FTPClient`类是这个任务的核心。下面,我们逐一分析压缩包中的文件: 1. **FtpUpload.java**:这个文件很...

    java FTP客户端程序

    6. **文件操作**:FTP客户端的主要功能包括文件的上传和下载。`FTPClient`提供了`storeFile()`和`retrieveFile()`方法,分别对应上传和下载操作。同时,可以使用`changeWorkingDirectory()`切换目录。 7. **被动...

    java ftp 上传 IIS 展示,代码+文档

    Java FTP(File Transfer...总的来说,Java FTP上传IIS的实现涉及到Java网络编程、FTP协议、可能的第三方库使用,以及良好的异常管理和资源管理实践。通过合理的工具类设计,可以创建出高效且易于维护的FTP客户端代码。

    课程设计基于GUI的FTP客户端的实现JAVA(txt为微云链接)

    1.实现一个图形用户界面的FTP客户端。 2.功能: 2.1 配置使用IIS的FTP服务器; 2.2 客户端发出各种操作命令;至少实现conn(连接)、list(列示文件)、retr(下载)、store(上载)的功能。 2.3 接收服务器的...

    ftp客户端应用程序代码.rar_ftp_ftp 客户端_ftp客户端

    "FTP客户端应用程序代码"很可能包含了实现上述功能的源代码,如使用Java、Python、C#等编程语言实现的FTP客户端库。 开发FTP客户端应用程序需要理解FTP协议的细节,包括命令格式、状态码以及如何处理不同类型的FTP...

    ftp上传功能java完整代码包

    总之,这个“ftp上传功能java完整代码包”提供了一个完整的解决方案,可以帮助开发者快速地在Java应用中实现FTP文件上传功能。无论是学习FTP协议、Java网络编程,还是实际开发中需要此功能,这个代码包都具有很高的...

Global site tag (gtag.js) - Google Analytics