asp.net保存远程图片的代码

下面是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技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • C#自定义基于控制台的Timer实例

    下面就为大家详细讲解如何自定义基于控制台的Timer实例。 准备工作 在使用C#自定义基于控制台的Timer实例之前,我们需要先在命名空间中引用System.Threading命名空间。 using System.Threading; 接着我们需要定义Timer对象和定时器事件处理程序,代码如下: //定义Timer对象 Timer timer = null…

    C# 2023年6月1日
    00
  • c#二进制逆序方法详解

    C#二进制逆序方法详解 基础知识 一个二进制数可以看作是若干个二进制位的组合,每个二进制位的数值只有0和1两种可能。如下所示是一个8位二进制数: 10101010 在计算机中,二进制数通常被用来表示数据和信息,如图像、音频、视频等。因此,二进制数的操作与处理是计算机编程的基础之一。 逆序方法 在C#编程中,我们经常需要将一个二进制数逆序,也就是将其二进制位顺…

    C# 2023年5月15日
    00
  • asp.net 生成静态页时的进度条显示

    为了实现在 ASP.NET 生成静态页时显示进度条,需要实现以下步骤: 添加一个 WebForm 页面,用于显示进度条并更新进度。这个页面可以使用 AJAX 技术,在不刷新整个页面的情况下更新进度条。 在生成静态页的代码中,添加一个事件来通知页面更新进度。这个事件可以使用委托来定义,让生成静态页的代码在执行过程中调用委托,传递当前的进度值给页面。 在生成静态…

    C# 2023年6月1日
    00
  • 详细介绍C# 泛型

    详细介绍C#泛型 什么是泛型? 泛型是C#语言中的一种数据类型,它允许我们写出能够适用于多种数据类型的代码。泛型作用于类、接口、方法等,可以大大提高代码的复用性和可读性。 泛型的语法与用法 泛型类 泛型类可以适用于多种数据类型,我们可以通过类名后加尖括号传入数据类型,例如: public class MyList<T> { private T[]…

    C# 2023年5月15日
    00
  • 直接在线预览Word、Excel、TXT文件之ASP.NET

    以下是详细讲解“直接在线预览Word、Excel、TXT文件之ASP.NET”的完整攻略。 1. 准备工作 需要安装 Microsoft Office 或者 Open Office ,以便预览 Word、Excel 文件。同时,需要安装 Adobe Reader 或者其他 PDF 阅读器,以便预览 PDF 文件。 2. 后端代码 在 ASP.NET 中,通常…

    C# 2023年5月31日
    00
  • .net实现网站用户登录认证

    下面是“.NET实现网站用户登录认证”的完整攻略: 1. 创建一个ASP.NET Web应用程序 首先,打开Visual Studio IDE,然后在File菜单中选择New -> Project。在新建项目窗口中选择Web -> ASP.NET Web应用程序。 在下一步中,给你的应用程序命名,并选择“Empty”模板。 2. 配置Web.co…

    C# 2023年5月31日
    00
  • C#中Backgroundworker与Thread的区别

    在C#中,可以使用BackgroundWorker和Thread类来实现多线程编程。这两个类最初的目的都是为了实现异步操作,但它们使用的机制和易用性却有着较大的不同。 BackgroundWorker与Thread的区别 机制 BackgroundWorker类是基于事件的异步操作机制,它将异步操作分为三个阶段:DoWork、ProgressChanged、…

    C# 2023年5月15日
    00
  • c#中自定义Base16编码解码的方法示例

    针对你提供的主题,我会从以下几个方面进行详细讲解: Base16编码和解码是什么? C#内置的Base16编码和解码方法 自定义C#中的Base16编码和解码方法 示例说明 1. Base16编码和解码是什么? Base16(也称为hexadecimal)是一种将二进制数据编码为16进制字符串的方式,每个字节(8位)会转化为两个16进制数字(共16个)。 例…

    C# 2023年6月7日
    00
合作推广
合作推广
分享本页
返回顶部