【小5聊】Winform从指定服务器下载文件的方式

news2025/1/22 17:05:29

在一些实际项目中,我们往往需要上传一些excel、word等办公文件,甚至是mp3、mp4等音频视频文件。

当然,大多数小型网站会放到自己服务器,如果文件量不大的话

如果文件数量会很多,那么就需要考虑使用第三方来保管存储

不管是自己服务器存储还是第三方存储,有时候总会需要下载到本地或者,这个时候自己就可以写个winform小工具

也趁这次空闲时间,给C#入门同行整理一个简单例子

下载效果

 

1、开发环境

1)win11操作系统

2).NET Framework 4.8

2、知识点

1) 带宽占用

如果是从自己服务器下载,那么在下载过程中,服务器会占用一定带宽

所以,若是操作线上服务器,为不影响用户体验,可以选择访问量少的时候操作

2)WebClient

3)HttpWebRequest

3、使用WebClient实现下载

这里找一个下载mp3的链接测试

每次操作完文件下载,即可释放或关闭

1)先对当前类进行实例化

2)实例化后,即可调用下载方法

3)再设置一个变量,下载后保存的文件完整路径

  • 简单的代码
string url = txtUrl.Text;
string savaPath = $"{txtSavePath.Text}\\{Guid.NewGuid().ToString()}.mp3";
WebClient webClient = new WebClient();
webClient.DownloadFile(url, savaPath);
webClient.Dispose(); // 手动释放

4、使用WebClient异步下载

1)刚接触异步的小伙伴,可能对这个没什么概念

2)异步可以同时开启多个线程进行下载

3)异步接收的第一个参数由字符串变为了一个Uri类

string url = txtUrl.Text;
string savaPath = $"{txtSavePath.Text}\\{Guid.NewGuid().ToString()}.mp3";
using(var webClient=new WebClient())
{
    Uri urlValue = new Uri(url);
    webClient.DownloadFileAsync(urlValue, savaPath);
}

5、使用WebClient下载json数据

1)并在发送请求头加上数据

2)上传的数据需要转为二进制同时以form表达形式上传,大多数是这么规定

  •  代码如下
string url = txtUrl.Text;
string savaPath = $"{txtSavePath.Text}\\{Guid.NewGuid().ToString()}.json";
using (var webClient = new WebClient())
{
    Uri urlValue = new Uri(url);
    string postString = "testvalue=123456&key=123";
    webClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
    byte[] postData = Encoding.UTF8.GetBytes(postString);
    byte[] responseData = webClient.UploadData(urlValue, "POST", postData);
                
    string result = Encoding.UTF8.GetString(responseData);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/105532.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Elasticsearch:使用 NLP 问答模型与你喜欢的圣诞歌曲交谈

自然语言处理 (NLP) 是人工智能 (AI) 的一个分支,旨在通过将计算语言学与统计、机器学习和深度学习模型相结合,尽可能接近人类解释地理解人类语言。 NLP 的最大挑战之一是在考虑到各种语言表示的情况下预训练文本数据的过程。 2018 年,谷歌…

企业报表插件怎么用?

最近因为单位年底要做部门总结汇报,需要使用很多的数据以报表的形式来引证今年的工作情况,内部的 OA、ERP 这些业务系统是指望不上了。作为懂一点 SQL、又经常用 Excel 来给领导做报表的我,在网上一轮操作(就是百度啦)…

算法通关手册 刷题笔记1 数组基础

算法通关手册 刷题笔记1 数组基础 持续更新中 文章目录算法通关手册 刷题笔记1 数组基础数组操作题目0189 轮转数组AC自己的解法其他解法知识点查漏补缺关于python中的数组赋值python中对象的引用0066 加一AC自己的解法其他解法知识点查漏补缺0724 寻找数组的中心下标AC自己的解…

大数据必学Java基础(一百一十六):Application域监听器

文章目录 Application域监听器 一、认识Application域监听器 二、监听器代码 Application域监听器 一、认识Application域监听器

关于金字塔格式转tiff并且openslide能获取到缩略图等标签信息

我们都知道openslide通过openslide_get_associated_image_names获取相关的图像名称,比如"thumbnail",“label”,“macro"等。那我们将"thumbnail”,“label”,"macro"写入tiff的时候,如何才能保证openslide能够获取到呢&a…

2022年第三届MathorCup高校数学建模挑战赛——大数据竞赛 赛道B 北京移动用户体验影响因素研究 建模方案及代码实现(更新中)

【BetterBench原创】2022年第三届MathorCup高校数学建模挑战赛——大数据竞赛 赛道B 北京移动用户体验影响因素研究 建模方案及代码实现(更新中) 更新进展 2022年12月20日 22:00 发布初步思路 (待更新)发布初步思路实现代码 …

即时通讯音视频开发视频编解码预测技术

目的是去除空间冗余和时间冗余。因为视频存在大量的空间冗余和时间冗余,包括空间冗余、时间冗余,预测后得到去除大部分空间或时间冗余的残差。 图像空间相邻像素具有很强的相关性,帧内预测技术去除空间冗余。 视频图像在时间上有较强的相关性…

组团出海抢抓跨境电商外贸,有利于2023“开门稳”

组团出海抢抓跨境电商外贸,有利于2023“开门稳” 我国是货物贸易第一大国,强大的生产能力、出色的产业配套、完善的物流供应、充足高效的劳动力,都为我国成为贸易强国提供了有利条件。 近几年,中国跨境电商产业进入快速发展阶段&a…

区块链北大肖老师学习笔记4

第五节 比特币系统的实现 区块链是去中心化的账本,比特币使用的是基于交易的这种账本模式(transaction[交易]-based ledger[账本])。系统当中并不会显示每个账户有多少钱。 比特币系统的全节点要维护一个叫UTXO(unspent transaction output)(还没有被花出去的交易的…

成为2.2亿儿童主动要吃的天然营养,AMSTRONG维小壮做对了什么?

文|螳螂观察(TanglangFin) 随着疫情防控政策的调整,在人们开始注重提升身体免疫力以抗击病毒的措施中,在国外流行多年的接骨木莓,开始受到国内消费者的青睐。 接骨木莓的功效早已被美国FDA和加拿大FDA双重认证&#…

VUE3-Pinia的使用《三》

pinia的官网是简介 | Pinia。 它的功能和vuex差不多,但是pinia更加优于vuex。主要用于状态管理,管理全局的变量,也可以存储页面A的值,然后在页面B中直接访问,不分父子组件之间的关系,可以任意传值&#xf…

设计模式之状态模式

State design pattern 状态模式的概念、状态模式的结构、状态模式的优缺点、状态模式的使用场景、状态模式的实现示例、状态模式的源码分析 1、状态模式的概念 对有状态的对象,把复杂的判断逻辑提取到不同的状态对象中,允许状态对象在其内部状态发生改变…

使用预授权签名加速 BSV 有状态合约更新

状态更新竞争 BSV 智能合约将状态存储在交易链的输出中。 当交易花费包含旧状态的输出并创建包含新状态的输出时,就会发生状态转换。 在任何给定时间,交易链末端的单个输出/UTXO 都具有最新状态。 当多个事务竞争同时更新共享状态时,就会出…

Anchor2

Anchor也是第二季了~~ 来一起来学习Faster R-CNN中的RPN及Anchor 说到RPN和Anchor,应该立马就能想到Faster R-CNN网络框架 首先我先将几类经典的目标检测网络做一个对比,然后开始说说今天要讲的知识。 最开始出现的是R-CNN,如下图&#xff…

什么是编程?程序员主要做啥工作?如何学习呢?

对编程的理解 编程换成通俗的语言可以理解为使用一些英文单词组成的指令发送给计算机,做指定的事情。 编程的种类 如今在互联网市场中,编程的工作一共分为了3大类: 前端编程 后台编程 运维编程 前端编程: 什么是前端&#…

门诊地图导航怎么做,零成本的医院室内导航解决方案

现在很多医院都比较大,科室众多,往往让人不知道要找的科室在哪里,不了解看病的流程,只能去咨询台询问,费时又费力……电子地图作为大家最喜闻乐见的高效应用形式,可高效为病患提供导医服务,并为…

XML介绍和基本用法(一文彻底搞懂XML!)

文章目录1.XML1.1概述1.2标签的规则1.3语法规则1.4xml解析1.5DTD约束1.6schema约束1.XML 1.1概述 万维网联盟(W3C) 万维网联盟(W3C)创建于1994年,又称W3C理事会。1994年10月在麻省理工学院计算机科学实验室成立。 建立者: Tim Berners-Lee (蒂姆伯纳斯李…

智能图像水位识别监测 基于OpenCv

智能图像水位识别监测利用OpenCVyolo网络学习模型对河道江河湖泊等区域进行实时监测,当监测到水位刻度尺超标时立即抓拍。OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉处理开源软件库,支持与计算机视觉和机器…

【Linux】编辑器的天花板vim

​🌠 作者:阿亮joy. 🎆专栏:《学会Linux》 🎇 座右铭:每个优秀的人都有一段沉默的时光,那段时光是付出了很多努力却得不到结果的日子,我们把它叫做扎根 目录👉前言&…

14.SpringAop

1. Aop简介 AOP(Aspect Oriented Programming)面向切面编程,一种编程范式,指导开发者如何组织程序结构 OOP(Object Oriented Programming)面向对象编程 作用:在不惊动原始设计的基础上为其进行功能增强。简单的说就是在不改变方法源代码的基…