c#webclient上传文件

请教各位高手,用Webclient.UploadDataAsync方法上传文件到服务器.现在遇到2个问题1.如果文件太大就卡住了,大约大于600M就会抛出内存不足的异常.... 请教各位高手,用Webclient.UploadDataAsync方法上传文件到服务器.现在遇到2个问题
1.如果文件太大就卡住了,大约大于600M就会抛出内存不足的异常.如何传比较大的文件?
2.如果大文件传送过程中,不想继续传了,关闭传送窗口.需要做什么处理吗?比如close之类的.
用的是Webclient.UploadFileAsync发法,不是UploadDataAsync.上文写错了
展开
 我来答
随风z9pd
2011-09-08 · TA获得超过777个赞
知道小有建树答主
回答量:442
采纳率:0%
帮助的人:586万
展开全部
1.内存不足是因为你把文档一次性读到内存中,然后再进行上传了。如果文档比你剩余内存大,那就会抛出内存不足的异常。你可以定义一个byte[],设置大小为4M,每次读文件中的4M数据到这个数组中,读一点上传一点,直到全部上传。这个需要用到HttpWebRequest和HttpWebResponse了,WebClient不知道支不支持。
2.client.CancelAsync()方法可以把挂起的异步操作取消。
追问
我看了下不是UploadDataAsync方法
用的是Webclient.UploadFileAsync方法,也要通过内存吗?报错的时候,查看内存还有很多.
追答
windows有限制的,当内存低于某个百分比时(我电脑上是40%左右),他就不让你继续把文件加载到内存中了,而不是真正的内存为0了才报内存不足。前面没说清,不好意思。
obpt123
2015-12-09 · 超过17用户采纳过TA的回答
知道答主
回答量:54
采纳率:100%
帮助的人:29.4万
展开全部
using (WebClient wc = new WebClient())
{
wc.UploadFile(上传文件的url, 本地文件的名称);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hairong00
2011-09-09
知道答主
回答量:23
采纳率:0%
帮助的人:17.9万
展开全部
怎么不用FTP方式呢
那中方式基本不会出现这种情况
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式