winform用http上传文件或下载文件进度条如何实现

 我来答
shown_james
2010-09-03 · TA获得超过873个赞
知道小有建树答主
回答量:665
采纳率:0%
帮助的人:630万
展开全部
winform用http上传?不知道你具体是什么意思

1.如果对端是winform服务端的话,建立socket连接发送字节流,用进度条控件实时获取进度信息,可以发送一个自己就显示一个比例

2.如果对端是webservice的话那就按照调用一次方法刷新一次进度,但是这里有问题,webservice作为对端接收的话不能一次处理大量数据,会导致页面脚本超时,大概在45秒左右。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天道sjm酬勤
2010-09-03 · TA获得超过444个赞
知道答主
回答量:279
采纳率:0%
帮助的人:0
展开全部
// 即时计算发送文件的状态
public class SendStatus
{
private FileInfo info;
private long fileBytes;

public SendStatus(string filePath)
{
info = new FileInfo(filePath);
fileBytes = info.Length;
}

public void PrintStatus(int sent)
{
string percent = GetPercent(sent);
Console.WriteLine("Sending {0} bytes, {1}% ...", sent, percent);
}

// 获得文件发送的百分比
public string GetPercent(int sent)
{

decimal allBytes = Convert.ToDecimal(fileBytes);
decimal currentSent = Convert.ToDecimal(sent);

decimal percent = (currentSent / allBytes) * 100;
percent = Math.Round(percent, 1); //保留一位小数

if (percent.ToString() == "100.0")
return "100";
else
return percent.ToString();
}
}

这是一个计算发送多少个字节的类,根据发送的文件大小以及已发送的字节数计算出发送的比例,看懂这个类之后调用相应的方法就会输出百分比了,如果想在窗体上实时显示的话就在这个类里加一个属性字段在主窗体上获得赋值给进度条就可以了。
也可以做一个事件来监听这里的方法。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式