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