当前位置: 首页 > news >正文

兰州seo网站建设网站宽屏背景

兰州seo网站建设,网站宽屏背景,模板王字库,网站站点不安全Blazor 中如何下载文件到浏览器目录一、前言二、方法一#xff08;导航跳转#xff09;三、方法二#xff08;下载后传出#xff09;(一) 使用 RestSharp 下载(二) 使用 BlazorDownloadFile 传出独立观察员 2021 年 3 月 28 日一、前言最近想给之前文章《下载中转加速器 VP… Blazor 中如何下载文件到浏览器目录一、前言二、方法一导航跳转三、方法二下载后传出(一) 使用 RestSharp 下载(二) 使用 BlazorDownloadFile 传出独立观察员 2021 年 3 月 28 日一、前言最近想给之前文章《下载中转加速器 VPSDownloader.NET.NET Core 程序部署到 Linux 系统》中提到的 VPS 文件中转下载服务添加一个前端页面其实之前也想使用热门的前端框架 Vue 来做也做了点工作了但是毕竟不是前端开发上手起来还是比较慢的而且引入了 NodeJS 等技术栈和后端的 ASP.NET Core WebApi 也不共存于一个项目开发和维护起来不太方便。后来了解到了发展如火如荼的 Blazor 框架这个是微软开发的 .NET 领域的前端框架在某种程度上和以前的 WebForm 有点类似不过以前那个是微软自己搞的大家都不待见它现在这个是符合 Web 领域新标准 WebAssembly而且 UI 方面也可以使用现有的成熟库。总之使用 Blazor可以使用 C# 代码来代替当然也是兼容的JavaScript 代码使 .NET 开发人员能有极致的全栈开发体验颠覆以往那种 “师夷长技以制夷” 的前端开发方式所以决定学习使用一下。另外本文的 Blazor 项目使用 Blazor Server 模式而不是 Blazor WebAssembly 模式。 先来前情回顾一下关键就是 WebApi 项目提供了一个 Download 控制器的 Get 方法/// summary /// 通过 HttpClient 获取另外站点的文件流再输出 /// /summary [HttpGet] publicasync TaskIActionResultGet(string url) {if(string.IsNullOrWhiteSpace(url)){_logger.LogTrace(下载地址为空);returnContent(请在链接后跟上下载地址后再次访问);}try{// 解决 CentOS7 Https 下载地址出错的问题var httpClientHandler new HttpClientHandler{ServerCertificateCustomValidationCallback (message, certificate2, arg3, arg4) true};using HttpClient client newHttpClient(httpClientHandler);var stream await client.GetStreamAsync(url);returnFile(stream,application/octet-stream, // 二进制流Path.GetFileName(url));}catch(Exception ex){returnContent($ 出错了{ex});} }之前是使用 Swagger 测试的实际上用 Postman 也可以测试 二、方法一导航跳转那么我们在 Blazor 中如何调用呢先来看个简单的 可以看到直接使用 Navigation.NavigateTo 跳转到相关 WebApi 地址即可。由于该接口返回二进制流浏览器就能直接识别进行下载了动图 这种方法只是起个跳转的作用实际下载动作还是在 WebApi  那边进行缺点是下载结果不可知优点是下载过程可见。这个实际上不是本文讨论的重点本文讨论的是使用代替了 JS 代码的 C# 代码来下载文件到浏览器。 三、方法二下载后传出那么如何实现呢这个要分两步走第一步是使用代码调用 API 进行下载文件第二步是使用某种方法把文件通过浏览器传出给用户。 (一) 使用 RestSharp 下载先来看看第一步这里我们通过 Postman 得知可以使用 RestSharp 进行调用 我们通过 NuGet 安装 RestSharp 后代码可以这样写var client newRestClient($http://frps.dlgcy.com:5000/Download?url{Url}); var request newRestRequest(Method.GET); var response await client.ExecuteAsync(request);if(response.IsSuccessful) {Tips 下载成功;var content response.Content;var contentBytes response.RawBytes;await BlazorDownloadFileService.DownloadFile(Path.GetFileName(Url), contentBytes, application/octet-stream); } else {Tips 下载失败; }(二) 使用 BlazorDownloadFile 传出再来看看第二步把下载的文件传出给用户方法就是使用 BlazorDownloadFile 开源方案。GitHub 地址https://github.com/arivera12/BlazorDownloadFileBlazor download files to the browser from c# without any JavaScript library or dependency.BlazorDownloadFile is the solution to saving files on the client-side, and is perfect for web apps that generates files on the client.However if the file is coming from the server we recommend you to first try to use Content-Disposition attachment response header as it has more cross-browser compatibility. 翻译在 Blazor 中通过 C#不使用任何 JS 库和依赖下载文件到浏览器。BlazorDownloadFile 是在客户端保存文件的解决方案它对于在客户端生成文件的应用来说是完美的。然而如果文件是来自服务端我们建议您优先使用 Content-Disposition 附件响应头因为它有更好的跨浏览器兼容性。 1、安装NuGetInstall-Package BlazorDownloadFile -Version 2.1.62、添加服务在 Startup 的 ConfigureServices () 中添加services.AddBlazorDownloadFile();3、在 Blazor 的 Razor 页面中使用// 在页首添加引用 using BlazorDownloadFile// 在 code 中注入 [Inject] IBlazorDownloadFileService BlazorDownloadFileService {get; set; }// 使用这里是先获得了文件的字节数组再调用本方法 await BlazorDownloadFileService.DownloadFile(Path.GetFileName(Url), contentBytes, application/octet-stream);图示 这样就可以根据下载是否成功来分别处理成功时传出文件给用户缺点是下载过程用户不可知还需优化效果如下动图最后给出源码地址https://gitee.com/dlgcy/VPSDownloader.NET/tree/Blog20210328 全文完感谢阅读。
http://wiki.neutronadmin.com/news/143458/

相关文章:

  • 创新的医疗网站建设海尔集团网站建设
  • 做设计去那些网站找素材wordpress登录页面logo删除
  • 网站建设方案设计书参考优化网站服务
  • 网站做弹幕广告新网店怎么免费推广
  • 网站建设专家有哪些数据库调用做wordpress
  • 哪个网站能看到医生做的全部手术wordpress 获取图片
  • 宁波正规网站建设方式湖州市住房和城乡建设局官方网站
  • 沧州网站制作费用免费网页代码大全
  • 网站首页设计与制作中国做网站的网站
  • 网站搜索引擎推广怎么做宁波专业网站建设模板服务
  • 公司网站的建设心得国外网站做调查
  • 网站建设中的html页面信誉好的菏泽网站建设
  • 有帮忙做儿童房设计的网站吗中国造价工程建设监理协会网站
  • 做网站郑州汉狮佛山全网营销型网站建设
  • 网站服务器租用和托管自学网站建设看什么书
  • 网站后台账户密码广州网站设计公司推荐哪家
  • 怎么制作网站导航页wordpress djiango
  • 在山东省建设监理协会网站中山外贸网站建设报价
  • 福田欧曼est前四后八seo百度推广
  • 成品源码网站东莞app开发定制
  • 特色美食网站建设苏州专业做网站公司有哪些
  • 百度网站地图制作片多多可以免费看电视剧吗
  • 公司做网站可以永久买断吗赣州做网站建设
  • win7怎么做网站服务器吗网站建设维护与推广
  • 网站模板大全 优帮云查企业下载什么软件
  • 平顶山市网站建设广告设计服务
  • 公司做网站价格泰州做网站哪家好
  • 河北网站建设seo优化济宁教育平台网站建设
  • flarum wordpressseo推广手段
  • 白鹭引擎做网站网站运营与网络推广方案