下面是ASP.NET保存远程图片的完整攻略。
1. 核心思路
ASP.NET通过HttpWebRequest对象获取远程图片的数据流,再通过FileStream对象将数据流写入本地文件中。
2. 代码实现
2.1. 方法一
using System;
using System.IO;
using System.Net;
public static bool SaveRemoteImage(string url, string savePath)
{
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "GET";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream stream = response.GetResponseStream();
byte[] buffer = new byte[1024];
int bytesRead = 0;
FileStream fileStream = new FileStream(savePath, FileMode.CreateNew);
while ((bytesRead = stream.Read(buffer, 0, buffer.Length)) != 0)
{
fileStream.Write(buffer, 0, bytesRead);
}
fileStream.Close();
stream.Close();
response.Close();
return true;
}
catch
{
return false;
}
}
2.2. 方法二
using System;
using System.IO;
using System.Net;
public static bool SaveRemoteImage(string url, string savePath)
{
try
{
WebClient client = new WebClient();
client.DownloadFile(url, savePath);
return true;
}
catch
{
return false;
}
}
3. 代码说明
上述代码中,SaveRemoteImage方法用于保存远程图片,接收两个参数:远程图片的URL和保存到本地的文件路径。
3.1. 方法一说明
- 首先通过HttpWebRequest对象和参数url创建一个GET请求。
- 然后通过HttpWebRequest.GetResponse()方法获取服务器返回的HttpWebResponse对象。
- HttpWebResponse.GetResponseStream()方法获得服务器返回数据流。
- 通过FileStream对象将数据流写入本地文件中。
3.2. 方法二说明
- 首先创建WebClient对象。
- 然后通过WebClient.DownloadFile()方法下载远程图片并保存到本地文件中。
需要注意的是,这两种方式保存远程图片时都需要实现异常处理,并返回布尔类型的结果。
4. 使用示例
string url = "https://www.example.com/images/logo.png";
string savePath = "C:\\Temp\\logo.png";
bool result = SaveRemoteImage(url, savePath);
if (result)
{
Console.WriteLine("保存成功");
}
else
{
Console.WriteLine("保存失败");
}
以上示例中,将远程图片保存到本地的C:\Temp\logo.png路径下。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:asp.net保存远程图片的代码 - Python技术站