将文件从 url 下载到 .Net Core 中的本地设备

Posted

技术标签:

【中文标题】将文件从 url 下载到 .Net Core 中的本地设备【英文标题】:Download files from url to local device in .Net Core 【发布时间】:2017-08-30 10:17:18 【问题描述】:

在 .Net 4.0 中,我使用 WebClient 从 url 下载文件并将它们保存在本地驱动器上。但我无法在 .Net Core 中实现同样的目标。

谁能帮我解决这个问题?

【问题讨论】:

你确定 asp.net-core-mvc 是正确的标签吗?从您的问题来看,您似乎在谈论客户端软件。无论哪种方式:如果要下载文件,请使用 HttpClient 【参考方案1】:

WebClient.NET Core 中不可用。 (更新:来自2.0)因此在System.Net.Http 中使用HttpClient 是强制性的:

using System.Net.Http;
using System.Threading.Tasks;
...
public static async Task<byte[]> DownloadFile(string url)

    using (var client = new HttpClient())
    

        using (var result = await client.GetAsync(url))
        
            if (result.IsSuccessStatusCode)
            
                return await result.Content.ReadAsByteArrayAsync();
            

        
    
    return null;

【讨论】:

对于读者,请注意您不应该以这种方式使用 HttpClient。一种选择是让 HttpClientFactory 处理 Httpclient 对象的生命周期。阅读more【参考方案2】:

WebClient 可从.net core 2.0 获得

var wc = new System.Net.WebClient();
wc.DownloadFile( URL, @"c:\temp\myfile.txt");

【讨论】:

很高兴知道,当您真的想下载文件而不是使用内容时。 如果远程文件无法访问,或者 URL 错误会怎样?有没有办法知道文件是否下载成功? @Stian 抛出异常 @Leandro:为什么? 你有DownloadFileAsync方法(这是.net核心)

以上是关于将文件从 url 下载到 .Net Core 中的本地设备的主要内容,如果未能解决你的问题,请参考以下文章

使用 ASP.NET CORE 中的链接从 Cloudinary 下载 pdf 文件

无法将文件从 React 上传到具有多个对象的 .net Core 5

是否可以将 & 分隔的无密钥 url 参数提取到 .NET Core 中的操作方法参数中?

在.net core 6的导航栏中显示用户个人资料图片[关闭]

从.Net Core 2.0 Web应用程序中的apppsettings.json文件中读取值[重复]

如何将文件中的其他参数从 Angular 传递给 ASP.NET Core 控制器?