gpt4 book ai didi

c# - 使用 WebClient 以适当的扩展名保存图像

转载 作者:行者123 更新时间:2023-11-30 19:41:51 29 4
gpt4 key购买 nike

我需要从网站检索图像并将其保存到我的本地文件夹。图像类型在 .png、.jpg 和 .gif 之间变化

我试过

string url = @"http://redsox.tcs.auckland.ac.nz/CSS/CSService.svc/";
string saveLoc = @"/project1/home_image";
using (var wc = new WebClient())
{
wc.DownloadFile(url, saveLoc);
}

但这会将文件“home_image”保存在没有扩展名的文件夹中。我的问题是您如何确定扩展名?有没有简单的方法可以做到这一点?可以使用 HTTP 请求的 Content-Type 吗?如果是这样,您是怎么做到的?

最佳答案

如果要使用WebClient,则必须从WebClient.ResponseHeaders 中提取 header 信息。您必须先将其存储为字节数组,然后在获取文件信息后保存文件。

string url = @"http://redsox.tcs.auckland.ac.nz/CSS/CSService.svc/";
string saveLoc = @"/project1/home_image";

using (WebClient wc = new WebClient())
{
byte[] fileBytes = wc.DownloadData(url);

string fileType = wc.ResponseHeaders[HttpResponseHeader.ContentType];

if (fileType != null)
{
switch (fileType)
{
case "image/jpeg":
saveloc += ".jpg";
break;
case "image/gif":
saveloc += ".gif";
break;
case "image/png":
saveloc += ".png";
break;
default:
break;
}

System.IO.File.WriteAllBytes(saveloc, fileBytes);
}
}

如果可以的话,我希望我的扩展名长度为 3 个字母......个人喜好。如果您不介意,您可以将整个 switch 语句替换为:

saveloc += "." + fileType.Substring(fileType.IndexOf('/') + 1);

使代码更整洁。

关于c# - 使用 WebClient 以适当的扩展名保存图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18543518/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com