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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了winform用http上传文件或下载文件进度条如何实现相关的知识,希望对你有一定的参考价值。

参考技术A winform用http上传?不知道你具体是什么意思

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

2.如果对端是webservice的话那就按照调用一次方法刷新一次进度,但是这里有问题,webservice作为对端接收的话不能一次处理大量数据,会导致页面脚本超时,大概在45秒左右。
参考技术B // 即时计算发送文件的状态
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();



这是一个计算发送多少个字节的类,根据发送的文件大小以及已发送的字节数计算出发送的比例,看懂这个类之后调用相应的方法就会输出百分比了,如果想在窗体上实时显示的话就在这个类里加一个属性字段在主窗体上获得赋值给进度条就可以了。
也可以做一个事件来监听这里的方法。

用C#在winform窗口下点击按钮选择要提交的文件然后上传到数据库或其他地方,还可以让其他人下载和查看

...winfrom?直接用代码写啊~ IO操作数据流读取文件地址然后把文件转成二进制存进sql里。。然后在别的界面让别人可以下载到他们本地。。。这样就需要设置sql 服务器的远程访问功能以及你需要对二进制存库有了解了 参考技术A upload 参考技术B upload控件啊...上传了东西放在数据库里面...数据库里面最好只存放文件的路径....下载用ftp就可以了

以上是关于winform用http上传文件或下载文件进度条如何实现的主要内容,如果未能解决你的问题,请参考以下文章

winform文件上传服务器

java文件上传下载用哪种技术好?

小小一方士 C# AsyncAwait 之 上传/下载文件进度条实现原理

.net网站的文件上传读取进度条和断点下载

C# winfrom将文件通过IIS(http协议)上传到服务器上

HTTP 文件下载:监控下载进度