采用FTP协议实现文件的上传

原创 2007年10月09日 19:42:00
 请先明白一点,HTTP上传和FTP上传是不一样的,HTTP上传会带有头文件等等,你得分析,也就是通过网页上传。通过FTP上传不用,因为他不会带头文件,操作方式其实就和你在本地操作一个文件复制到另外一个地方没有什么区别,只是使用的类不一样而已。
下面是具体实现的原文件:
 
import java.io.File;
import java.io.FileInputStream;
import sun.net.TelnetOutputStream;
import sun.net.ftp.FtpClient;
/**
 *采用FTP协议实现多个文件的上传
 *FTP协议是Internet上用来传送文件的协议,规定了Internet上文件互相传送的标准。在java中实
 *现这一功能是借助FtpClient类完成的。具体实现过程:首先与FTP服务器建立连接;初始化文件的
 *传输方式,包括ASCIIBINARY两种方式;将文件输出到文件输入流FileInputStream中;
 *FileInputStream中的数据读入字节数组中;字节数组中的数据写入输出流
 *TelnetOutputStream(利用write方法将数据写入到一个网络链接上)。这样和源文件同名的一个
 *文件就复制到了服务器端。本例的JavaBean中通过upload()方法完成文件上传过程。
 */
publicclass WriteFileToServer {
    public WriteFileToServer() {
    }
 
    publicstaticvoid main(String[] args) {
        WriteFileToServer writeFileToServer = new WriteFileToServer();
        writeFileToServer.upload("C://eclipse.exe ");
    }
    publicstaticvoid upload(String localFileAndPath) {
        FtpClient ftpClient;
        try {
            ftpClient=new FtpClient("192.168.1.106",21);
            ftpClient.login("Anonymous","56553655@163.com");
            /*********必须要有下面这一句,否则写入的大小与读入的大小不一致************/
            ftpClient.binary();
          
            /************************取得本地文件的属性**************************/
            File f=new File(localFileAndPath);
            System.out.println("本地文件大小:"+f.length());
            System.out.println("文件名:"+f.getName());
           
            FileInputStream fis=new FileInputStream(new File(localFileAndPath));
            //put方法的参数表示在FTP服务器上要生成的文件名
            TelnetOutputStream tos=ftpClient.put(f.getName());
 
            byte[] bt=newbyte[1024];
            int len=0;
            int lenTotal=0;
            //采用循环的方式将从文件读入的流写到FTP服务器上
            while((len=fis.read(bt))!=-1) {
                lenTotal+=len;
                tos.write(bt,0,len);
            }
            //System.out.println("写到服务器的大小:"+lenTotal);
            tos.close();
            fis.close();
            ftpClient.closeServer();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

FTP文件传输协议两种方式的工作原理

FTP是一种文件传输协议,它支持两种模式,一种方式叫做Standard (也就是 Active,主动方式),一种是 Passive (也就是PASV,被动方式)。 Standard模式 FTP的客户端...
  • zqs62761130
  • zqs62761130
  • 2015年10月09日 22:49
  • 4783

FTP 协议和 HTTP 协议的12点比较(文件上传/下载)

许多站点,比如facebook或一些博客等都允许用户上传或下载文件,比如论坛或博客系统的图片。在这种情况下,通常有两种选择上传文件到服务器,那就是FTP协议和HTTP协议。 以下列出了一些两者的...
  • zjdns
  • zjdns
  • 2016年12月20日 19:15
  • 2378

FTP 文件传输协议(转)

FTP 文件传输协议A                 1. 介绍             FTP的目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数...
  • xjbclz
  • xjbclz
  • 2016年07月13日 21:46
  • 1847

JAVA中使用FTPClient上传下载 java利用ftp协议上传文件(by me)

package com.longboo.fangan; import java.io.File; import java.io.FileInputStream; import java.io...
  • u012307002
  • u012307002
  • 2014年02月16日 16:20
  • 555

Microsoft .NET Framework 2.0对文件传输协议(FTP)操作(上传,下载,新建,删除,FTP间传送文件等)实现汇总1

Microsoft .NET Framework 2.0对文件传输协议(FTP)操作(上传,下载,新建,删除,FTP间传送文件等)实现汇总1  http://gb2013.blog.163.com/...
  • lenovouser
  • lenovouser
  • 2011年12月07日 10:58
  • 814

C#实现的FTP协议的上传、下载

  • 2010年09月29日 13:19
  • 83KB
  • 下载

Java实现将图片上传至服务器(FTP协议)

本案例实现图片上传功能分为两个步骤,分别为 (1)APP用base64加密将图片内容上传至服务器(http协议),在临时目录中先存储好图片; (2)将服务器临时存储的图片用FTP协议上传至另一台专...
  • u011439839
  • u011439839
  • 2016年12月01日 14:08
  • 584

FTP 协议和 HTTP 协议的12点比较(文件上传/下载)

以下列出了一些两者的不同点: 1、HTTP协议是用来浏览网站的,而FTP是用来访问和传输文件的,FTP文件传输有点批量上传和维护网站的意思,而HTTP文件传输更多的是为终端用户提供文件传输,比如电影...
  • ftafta
  • ftafta
  • 2012年06月07日 17:09
  • 574

FTP 协议和 HTTP 协议的12点比较(文件上传/下载)

HTTP 和 FTP 的区别   HTTP  协议定义服务器端和客户端之间文件传输的沟通方式。 目前 HTTP 协议的版本是 Http1.1...
  • u014649204
  • u014649204
  • 2014年04月18日 17:28
  • 816

FTP 协议和 HTTP 协议的12点比较(文件上传/下载)

许多站点,比如facebook或一些博客等都允许用户上传或下载文件,比如论坛或博客系统的图片。在这种情况下,通常有两种选择上传文件到服务器,那就是FTP协议和HTTP协议。 以下列出了一些两者的...
  • zjdns
  • zjdns
  • 2016年12月20日 19:15
  • 2378
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:采用FTP协议实现文件的上传
举报原因:
原因补充:

(最多只允许输入30个字)