Cos*_*gic 4 c# asp.net-core razor-pages
我正在开发 ASP.NET Core Web 应用程序,并且正在使用 Razor Pages。
我的应用程序中显示了一些 URL,当我单击其中一个 URL 时,我想将与该 URL 对应的文件下载到存储应用程序的服务器上的文件夹中,而不是客户端上。
这很重要,因为该文件需要由其他一些第三方应用程序在服务器端进行处理。
URL 以及其他元数据来自数据库,我创建了一个数据库上下文来加载它们。我制作了一个 CSS HTML 文件并以表单形式显示信息。当我单击按钮时,我将 URL 发布到方法处理程序。
我在方法中收到 URL,但我不知道如何在服务器上下载该文件,而不先在客户端上下载它,然后将其保存/上传到服务器。我怎样才能实现这个目标?
从 .NET 6 开始WebRequest,WebClient和ServicePoint类已被弃用。
要使用推荐的下载文件HttpClient,您可以执行以下操作:
// using System.Net.Http;
// using System.IO;
var httpClient = new HttpClient();
var responseStream = await httpClient.GetStreamAsync(requestUrl);
using var fileStream = new FileStream(localFilePath, FileMode.Create);
responseStream.CopyTo(fileStream);
Run Code Online (Sandbox Code Playgroud)
请记住不要使用using,并且不要HttpClient在每次使用后处置实例。更多上下文请参见此处和此处。
获取实例的推荐方法是HttpClient从 获取它IHttpClientFactory。如果您HttpClient使用 a 获取实例HttpClientFactory,则可以HttpClient在每次使用后处置该实例。
| 归档时间: |
|
| 查看次数: |
9962 次 |
| 最近记录: |