c# ftp 大文件上传 测试2g通过 ( 利用 ftprequest)

原创 2012年03月22日 10:58:39

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.IO;
using System.Net;

//ftp 大文件上传 1g往上
public partial class Default2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
       //利用ftpwebrequest获取输入流,然后往这个流里写要上传的文件。 需要引用system.net空间
        string filePath = "f:\\Svr_2008w_SP2_x86.ISO"; //要上传的文件路径。该文件2g
        string fileName = "Svr_2008w_SP2_x86.ISO";//要上传的文件名称
        string ftpPath = "ftp://111.111.11.111//";//ftp服务器地址
        string username = "test123";//用户名
        string password = "123456";//密码

        FtpWebRequest myRequest = (FtpWebRequest)WebRequest.Create(ftpPath + fileName);//创建ftp请求对象
        myRequest.Credentials = new NetworkCredential(username,password);//设置ftp通讯凭证
        myRequest.Proxy = null;//当你的机子使用的是代理上网时,最好加上这一行,要不然报“使用 HTTP 代理时不支持请求的 FTP 命令。”错误
        myRequest.Method = WebRequestMethods.Ftp.UploadFile;//上传
        //其他参数
        //myRequest.KeepAlive = true;
        //myRequest.UseBinary = true;
        //myRequest.UsePassive = true;

        Stream rStream = null;//ftp请求流
        try
        {
            rStream = myRequest.GetRequestStream();//创建ftp请求流
            FileStream fs = File.OpenRead(filePath);//io流

            int iCount = 2048;
            int iFlag = 0;//读入的字节数
            byte[] myBuffer = new byte[iCount];

            //这里用一个固定的长度2048,也可以改大一点,这里不要用要上传的文件的长度,因为如果文件过大,length的长度超出了int的范围。
            //而fs.Read和 rStream.Write 里面的参数是int类型的,过大就会出错
            do
            {
                iFlag = fs.Read(myBuffer, 0, iCount);
                rStream.Write(myBuffer, 0, iFlag);
            } while (iFlag != 0);

            fs.Close();
            rStream.Close();

            FtpWebResponse myResponse= (FtpWebResponse)myRequest.GetResponse();
            myResponse.Close();

            //参考http://msdn.microsoft.com/zh-cn/library/8exfzxft%28v=vs.90%29.aspx
            //待续
            //需要断点续传
            //需要验证md5值
            //需要关闭连接
        }
        catch (Exception ex)
        {
           
            throw;
        }
    }
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

utf-8 BOM 及 C#去除BOM方法

Unicode规范中有一个BOM的概念。BOM——Byte Order Mark,就是字节序标记。在这里找到一段关于BOM的说明:  在UCS编码中有一个叫做"ZERO WIDTH NO-BREAK...

UltraEdit:编辑十六进制文件

UltraEdit最主要的功能是十六进制编辑功能,主要用于打开非ASCII码文件、二进制文件等由不可打印字符组成的非文本文件,具体操作过程如下:   一、选择“文件/打开”命令,在“打开文件”对...

大文件上传测试

  • 2015年05月13日 14:28
  • 8.99MB
  • 下载

commons-net FTP大文件上传

最近公司要做FTP大文件上传,自己摸索搞了好几天,终于弄好了 以后还能用 package com.uiotsoft.unisiot.util;  import org.apache.com...
  • kkrgwbj
  • kkrgwbj
  • 2014年12月10日 14:45
  • 615

C#编写的Web大文件上传代码

  • 2009年03月31日 13:22
  • 314KB
  • 下载

asp.net实现ftp上传代码(解决大文件上传问题)

原来使用asp.net上传控件上传 那个虽然简单但是页面不是很友好 然后就用了uploadify上传控件  这个控件虽然界面友好 但是大文件还是不能上传 而且在不同的浏览器会出现session丢失问题...

C#2.0大文件上传控件

  • 2009年02月24日 12:19
  • 58KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c# ftp 大文件上传 测试2g通过 ( 利用 ftprequest)
举报原因:
原因补充:

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