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#如何生成唯一订单号

    生成唯一订单号是一个常见的需求,这里介绍两种方法。 方法一:使用GUID GUID是一个128位的数字,几乎可以被视为唯一标识符。因此我们可以使用GUID来生成唯一的订单号。 C#中可以使用以下代码生成唯一的GUID: string orderId = Guid.NewGuid().ToString("N"); // N代表不含有分隔符的…

    C# 2023年6月1日
    00
  • C# 变量,常量数据类型详情

    下面我将为您详细讲解“C# 变量、常量、数据类型”的完整攻略。 变量 变量的定义 在C#中,变量是在使用前需要定义的。定义变量需要指定变量的名称、类型和初始值(可选)。变量的定义格式如下: data_type variable_name = initial_value; 其中,data_type为数据类型,variable_name为变量名称,initial…

    C# 2023年6月1日
    00
  • C# 检索不区分大小写并高亮显示实例详解

    在C#中,我们可以使用正则表达式来实现检索不区分大小写并高亮显示的功能。以下是实现该功能的步骤: 步骤1:引入命名空间 using System.Text.RegularExpressions; 在上面的示例中,我们引入了System.Text.RegularExpressions命名空间,该命名空间包含了正则表达式相关的类和方法。 步骤2:编写检索代码 s…

    C# 2023年5月15日
    00
  • C#中List存放元素的工作机制

    C#中的List\是一个动态数组,可以根据需要自动扩充长度以存放更多元素,其中的T代表元素的类型。List\在内存中的存储方式是连续的一段内存空间,这也就意味着List\能够像数组一样快速地寻址访问元素,同时也具有动态扩容的能力。 当向List\中添加元素时,会先检查当前List\的容量是否足够,若不足则会申请一块新的连续内存,将原来的元素复制到新的内存空间…

    C# 2023年6月6日
    00
  • C#实现基于任务的异步编程模式

    C#实现基于任务的异步编程模式 什么是基于任务的异步编程模式(TAP)? 基于任务的异步编程模式是一种编写异步代码的方式,主要基于Task类。TAP可以简化异步编程过程,使代码更加清晰简洁。 在TAP中,我们将一个异步方法定义为返回一个Task对象的方法。该方法在执行完异步操作后,将结果存储在Task对象中,然后将该对象返回给调用者。 如何实现基于任务的异步…

    C# 2023年5月15日
    00
  • 记一次 Windows10 内存压缩模块 崩溃分析

    一:背景 1. 讲故事 在给各位朋友免费分析 .NET程序 各种故障的同时,往往也会收到各种其他类型的dump,比如:Windows 崩溃,C++ 崩溃,Mono 崩溃,真的是啥都有,由于基础知识的相对缺乏,分析起来并不是那么的顺利,今天就聊一个 Windows 崩溃的内核dump 吧,这个 dump 是前几天有位朋友给到我的,让我帮忙看一下,有了dump之…

    C# 2023年4月27日
    00
  • C#商品管理系统简易版

    C#商品管理系统简易版攻略 1. 基础准备 安装Visual Studio:在官网上下载 Visual Studio 安装包,按照提示进行安装即可。 掌握C#基础语法:熟悉C#关键词、变量类型、循环语句、条件语句等基础语法,在基础上可以更好地理解代码的实现逻辑。 2. 搭建初始界面 在 Visual Studio 中创建一个 Windows Form 应用程…

    C# 2023年6月7日
    00
  • C#实现软件监控外部程序运行状态的方法

    C#实现软件监控外部程序运行状态的方法可以通过使用System.Diagnostics命名空间中的Process类来实现。本文将详细介绍如何使用C#实现软件监控外部程序运行状态的方法,并提供两个示例来演示如何使用Process类。 使用Process类监控外部程序运行状态 Process类是System.Diagnostics命名空间中的一个类,它可以用于启…

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