winform 上传文件到FTP时显示winform进度条控件 求源码求例子

FTP上传类 支持断点续传 带进度条 带使用说明 winform - 下载频道
- CSDN.NET
&&&&FTP上传类 支持断点续传 带进度条 带使用说明 winform
winform 下 FTP上传类 支持断点续传 带进度条 带使用说明
不好的东西我是不传得。最近需要积分。所以忍痛贴出来给大家了。主要是同时附带了好几个功能。完美无错。用了很久了。
真的想要就拿去。10分一分不让。嘿嘿
若举报审核通过,可奖励20下载分
被举报人:
majingchao
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
您可能还需要
开发技术下载排行C# WinForm通过WebClient实现文件上传下载 (附源码) - 折心的技术文档
- 博客频道 - CSDN.NET
4605人阅读
//// &summary&
/// WebClient上传文件至服务器
/// &/summary&
/// &param name="fileNamePath"&文件名,全路径格式&/param&
/// &param name="uriString"&服务器文件夹路径&/param&
private void UpLoadFile(string fileNamePath,string uriString)
//string fileName = fileNamePath.Substring(fileNamePath.LastIndexOf("//") + 1);
NewFileName = DateTime.Now.ToString("yyMMddhhmmss") + DateTime.Now.Millisecond.ToString() + fileNamePath.Substring(fileNamePath.LastIndexOf("."));
string fileNameExt = fileName.Substring(fileName.LastIndexOf(".") + 1);
if(uriString.EndsWith("/") == false) uriString = uriString + "/";
uriString = uriString + NewFileN
/**//// 创建WebClient实例
WebClient myWebClient = new WebClient();
myWebClient.Credentials = CredentialCache.DefaultC
// 要上传的文件
FileStream fs = new FileStream(fileNamePath, FileMode.Open, FileAccess.Read);
//FileStream fs = OpenFile();
BinaryReader r = new BinaryReader(fs);
//使用UploadFile方法可以用下面的格式
//myWebClient.UploadFile(uriString,"PUT",fileNamePath);
byte[] postArray = r.ReadBytes((int)fs.Length);
Stream postStream = myWebClient.OpenWrite(uriString,"PUT");
if(postStream.CanWrite)
postStream.Write(postArray,0,postArray.Length);
MessageBox.Show("文件目前不可写!");
postStream.Close();
MessageBox.Show("文件上传失败,请稍候重试~");
/**//// &summary&
/// 下载服务器文件至客户端
/// &/summary&
/// &param name="URL"&被下载的文件地址,绝对路径&/param&
/// &param name="Dir"&另存放的目录&/param&
public void Download(string URL,string Dir)
WebClient client = new WebClient();
string fileName = URL.Substring(URL.LastIndexOf("//") + 1); //被下载的文件名
string Path = Dir+fileN
//另存为的绝对路径+文件名
WebRequest myre=WebRequest.Create(URL);
//MessageBox.Show(exp.Message,"Error");
client.DownloadFile(URL,Path);
//MessageBox.Show(exp.Message,"Error");
下载带进度条代码
/// &summary&
/// 下载文件
/// &/summary&
/// &param name="URL"&网址&/param&
/// &param name="Filename"&文件名&/param&
/// &param name="Prog"&进度条&/param&
public static void DownFile( string URL, string Filename, ProgressBar Prog )
System.Net.HttpWebRequest Myrq = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(URL); //从URL地址得到一个WEB请求
System.Net.HttpWebResponse myrp = (System.Net.HttpWebResponse)Myrq.GetResponse(); //从WEB请求得到WEB响应
long totalBytes = myrp.ContentL //从WEB响应得到总字节数
Prog.Maximum = (int)totalB //从总字节数得到进度条的最大值
System.IO.Stream st = myrp.GetResponseStream(); //从WEB请求创建流(读)
System.IO.Stream so = new System.IO.FileStream(Filename, System.IO.FileMode.Create); //创建文件流(写)
long totalDownloadedByte = 0; //下载文件大小
byte[] by = new byte[1024];
int osize = st.Read(by, 0, (int)by.Length); //读流
while (osize & 0)
totalDownloadedByte = osize + totalDownloadedB //更新文件大小
Application.DoEvents();
so.Write(by, 0, osize); //写流
Prog.Value = (int)totalDownloadedB //更新进度条
osize = st.Read(by, 0, (int)by.Length); //读流
so.Close(); //关闭流
st.Close(); //关闭流
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:21918次
排名:千里之外
转载:14篇
(2)(9)(2)(7)[转]C#在WinForm下使用HttpWebRequest上传文件并显示进度 - 青椒炒蛋
- 博客频道 - CSDN.NET
1480人阅读
/// &summary& /// 将本地文件上传到指定的服务器(HttpWebRequest方法) /// &/summary& /// &param name="address"&文件上传到的服务器&/param& /// &param name="fileNamePath"&要上传的本地文件(全路径)&/param& /// &param name="saveName"&文件上传后的名称&/param& /// &param name="progressBar"&上传进度条&/param& /// &returns&成功返回1,失败返回0&/returns& private int Upload_Request(string address, string fileNamePath, string saveName, ProgressBar progressBar) { &&& int returnValue = 0;
&&& // 要上传的文件 &&& FileStream fs = new FileStream(fileNamePath, FileMode.Open, FileAccess.Read); &&& BinaryReader r = new BinaryReader(fs);
&&& //时间戳 &&& string strBoundary = "----------" + DateTime.Now.Ticks.ToString("x"); &&& byte[] boundaryBytes = Encoding.ASCII.GetBytes("/r/n--" + strBoundary + "/r/n");
&&& //请求头部信息 &&& StringBuilder sb = new StringBuilder(); &&& sb.Append("--"); &&& sb.Append(strBoundary); &&& sb.Append("/r/n"); &&& sb.Append("Content-Disposition: form- name=/""); &&& sb.Append("file"); &&& sb.Append("/"; filename=/""); &&& sb.Append(saveName); &&& sb.Append("/""); &&& sb.Append("/r/n"); &&& sb.Append("Content-Type: "); &&& sb.Append("application/octet-stream"); &&& sb.Append("/r/n"); &&& sb.Append("/r/n"); &&& string strPostHeader = sb.ToString(); &&& byte[] postHeaderBytes = Encoding.UTF8.GetBytes(strPostHeader);
&&& // 根据uri创建HttpWebRequest对象 &&& HttpWebRequest httpReq = (HttpWebRequest)WebRequest.Create(new Uri(address)); &&& httpReq.Method = "POST";
&&& //对发送的数据不使用缓存 &&& httpReq.AllowWriteStreamBuffering =
&&& //设置获得响应的超时时间(300秒) &&& httpReq.Timeout = 300000; &&& httpReq.ContentType = "multipart/form- boundary=" + strB &&& long length = fs.Length + postHeaderBytes.Length + boundaryBytes.L &&& long fileLength = fs.L &&& httpReq.ContentLength = &&& try &&& { &&&&&&& progressBar.Maximum = int.MaxV &&&&&&& progressBar.Minimum = 0; &&&&&&& progressBar.Value = 0;
&&&&&&& //每次上传4k &&&&&&& int bufferLength = 4096; &&&&&&& byte[] buffer = new byte[bufferLength];
&&&&&&& //已上传的字节数 &&&&&&& long offset = 0;
&&&&&&& //开始上传时间 &&&&&&& DateTime startTime = DateTime.N &&&&&&& int size = r.Read(buffer, 0, bufferLength); &&&&&&& Stream postStream = httpReq.GetRequestStream();
&&&&&&& //发送请求头部消息 &&&&&&& postStream.Write(postHeaderBytes, 0, postHeaderBytes.Length); &&&&&&& while (size & 0) &&&&&&& { &&&&&&&&&&& postStream.Write(buffer, 0, size); &&&&&&&&&&& offset += &&&&&&&&&&& progressBar.Value = (int)(offset * (int.MaxValue / length)); &&&&&&&&&&& TimeSpan span = DateTime.Now - startT &&&&&&&&&&& double second = span.TotalS &&&&&&&&&&& lblTime.Text = "已用时:" + second.ToString("F2") + "秒"; &&&&&&&&&&& if (second & 0.001) &&&&&&&&&&& { &&&&&&&&&&&&&&& lblSpeed.Text = " 平均速度:" + (offset / 1024 / second).ToString("0.00") + "KB/秒"; &&&&&&&&&&& } &&&&&&&&&&& else &&&&&&&&&&& { &&&&&&&&&&&&&&& lblSpeed.Text = " 正在连接&"; &&&&&&&&&&& } &&&&&&&&&&& lblState.Text = "已上传:" + (offset * 100.0 / length).ToString("F2") + "%"; &&&&&&&&&&& lblSize.Text = (offset / ).ToString("F2") + "M/" + (fileLength / ).ToString("F2") + "M"; &&&&&&&&&&& Application.DoEvents(); &&&&&&&&&&& size = r.Read(buffer, 0, bufferLength); &&&&&&& } &&&&&&& //添加尾部的时间戳 &&&&&&& postStream.Write(boundaryBytes, 0, boundaryBytes.Length); &&&&&&& postStream.Close();
&&&&&&& //获取服务器端的响应 &&&&&&& WebResponse webRespon = httpReq.GetResponse(); &&&&&&& Stream s = webRespon.GetResponseStream(); &&&&&&& StreamReader sr = new StreamReader(s);
&&&&&&& //读取服务器端返回的消息 &&&&&&& String sReturnString = sr.ReadLine(); &&&&&&& s.Close(); &&&&&&& sr.Close(); &&&&&&& if (sReturnString == "Success") &&&&&&& { &&&&&&&&&&& returnValue = 1; &&&&&&& } &&&&&&& else if (sReturnString == "Error") &&&&&&& { &&&&&&&&&&& returnValue = 0; &&&&&&& }
&&& } &&& catch &&& { &&&&&&& returnValue = 0; &&& } &&& finally &&& { &&&&&&& fs.Close(); &&&&&&& r.Close(); &&& }
&&& return returnV }
参数说明如下:
address:接收文件的URL地址,如:
fileNamePath:要上传的本地文件,如:D:/test.rar
saveName:文件上传到服务器后的名称,如:.rar
progressBar:显示文件上传进度的进度条。
接收文件的WebForm添加一个Save.aspx页面,Load方法如下:
protected void Page_Load(object sender, EventArgs e) { &&& if (Request.Files.Count & 0) &&& { &&&&&&& try &&&&&&& { &&&&&&&&&&& HttpPostedFile file = Request.Files[0]; &&&&&&&&&&& string filePath = this.MapPath("UploadDocument") + "//" + file.FileN &&&&&&&&&&& file.SaveAs(filePath); &&&&&&&&&&& Response.Write("Success/r/n"); &&&&&&& } &&&&&&& catch &&&&&&& { &&&&&&&&&&& Response.Write("Error/r/n"); &&&&&&& } &&& }}
同时需要配置WebConfig文件的httpRuntime 如下:
&httpRuntime maxRequestLength="102400" executionTimeout="300"/&
不能的话最大只能上传4M了。要是想上传更大的文件,maxRequestLength,executionTimeout设置大些,同时WinForm下的代码行
//设置获得响应的超时时间(300秒)httpReq.Timeout = 300000;
也要修改,另外别忘了看看IIS的连接超时是否设置为足够大。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:151770次
积分:2008
积分:2008
排名:第9439名
原创:46篇
转载:12篇
评论:104条
(1)(4)(1)(1)(6)(5)(6)(1)(5)(3)(3)(13)(3)(2)(3)温馨提示:该网站暂时无法进行访问
原因一:根据工信部相关法规,您尚未进行备案;
原因二:根据工信部的相关法规规定,您当前的接入商与实际使用的接入商不相符;
原因三:您的网站可能存在不适宜传播的信息,请联系网站管理员。
本页面为默认提示页面,如网站存在以上问题请及时进行处理。
谢谢合作!}

我要回帖

更多关于 winform文件上传控件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信