在Winform里面想使用webclient来上传文件,同时用progressbar来显示上传的进度。考虑用webclient的OpenWrite方法打开url的连接,同时用Write方法写入数据。但是不知道怎么让进度条反映出上传的进度。还有一个问题就是上传的文件太大时(我这里测试时是100M左右),就会出现上传错误。不知道是什么原因。望各位指点一二,最好有上传显示进度的源代码,网上找了好久找不到,不过下载的进度我到参照网上的实现了。

解决方案 »

  1.   

    参考
    http://www.cnblogs.com/lmjob/archive/2008/10/16/1312652.html
    http://www.cnblogs.com/cy163/archive/2005/09/04/229964.html
      

  2.   

    我参考网上资料,实现出来了。得出的结论是WebClient上传文件时是先把整个文件放到内存里,能后再上传,所以会出现进度条很短时间内就添满了,大文件不能上传的问题。
    我改用HttpWebRequest方法实现了。可以参考下面的网站,是老外的博客,描述的很详细:
    http://blogs.msdn.com/johan/archive/2006/11/15/are-you-getting-outofmemoryexceptions-when-uploading-large-files.aspx
    用HttpWebRequest的话,别忘了写一个Web接收页面,同时在WebConfig里面定义好httpRuntime节,不能的话最多只能传4M。
    感谢wuyq11的回复。给分了。