概述
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;
}
}
}
最后
以上就是怕孤单故事为你收集整理的c# ftp 大文件上传 测试2g通过 ( 利用 ftprequest)的全部内容,希望文章能够帮你解决c# ftp 大文件上传 测试2g通过 ( 利用 ftprequest)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复