C#保存上传来的图片示例代码

C#保存上传来的图片是一项常见的操作,下面是一个完整的攻略说明:

1.前置条件

在进行C#保存上传来的图片的操作时,首先我们需要创建一个ASP.NET Web应用程序。创建完成后,我们需要在Web.config配置文件中设置文件上传的相关参数:

<system.web>
    <httpRuntime maxRequestLength="1048576" />
    <compilation debug="true" targetFramework="4.5" />
    <authentication mode="None" />
    <pages controlRenderingCompatibilityVersion="4.0" clientIDMode="AutoID">
        <namespaces>
            <add namespace="System.Web.Helpers" />
            <add namespace="System.Web.Mvc" />
            <add namespace="System.Web.Mvc.Ajax" />
            <add namespace="System.Web.Mvc.Html" />
            <add namespace="System.Web.Routing" />
        </namespaces>
    </pages>
</system.web>
<system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
</system.webServer>

其中maxRequestLength表示请求上传文件的最大长度(单位:KB),默认为4MB。若文件大小超过最大上传限制,则会抛出异常。

2.保存图片代码示例

第一条示例:

if(Request.Files.Count > 0) 
{
    HttpPostedFileBase upload = Request.Files[0];

    if (upload != null && upload.ContentLength > 0) 
    {
        string imageName = Path.GetFileName(upload.FileName);
        string imagePhysicalPath = Server.MapPath("~/Uploads/" + imageName);

        //保存图片到服务器
        upload.SaveAs(imagePhysicalPath);

        //显示保存结果
        Response.Write("图片上传成功");
    }
}

上述代码会从Request中获取上传文件,判断文件是否为空,若文件不为空则通过Server.MapPath获取保存路径,并通过SaveAs将文件保存到指定位置。

第二条示例:

FileStream fs = new FileStream(Server.MapPath("~") + "Upload/" + filename, FileMode.CreateNew);
BinaryWriter bw = new BinaryWriter(fs);
bw.Write(fileBytes);
bw.Close();
fs.Close();

上述代码中利用了FileStream和BinaryWriter两个对象,通过二进制方式写入文件数据流。其中,Server.MapPath用于将相对路径转换成绝对路径,FileMode.CreateNew表示创建一个新文件,若原先存在同名文件,则会覆盖原先文件。

总结

以上两条C#保存上传来的图片示例代码,可以应用于不同场景。第一条代码操作较为简单,适用于小文件上传;第二条代码需要额外的文件流操作,用于处理大文件上传的情况。需要根据实际需求选择合适的代码段。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#保存上传来的图片示例代码 - Python技术站

(0)
上一篇 2023年6月1日
下一篇 2023年6月1日

相关文章

  • ASP.NET Core使用HostingStartup增强启动操作方法详解

    在ASP.NET Core中,您可以使用HostingStartup来增强应用程序的启动操作。本攻略将深入探讨如何使用HostingStartup,并提供两个示例说明。 HostingStartup HostingStartup是一个接口,它定义了一个方法Configure方法,该方法在应用程序启动时被调用。您可以使用HostingStartup来执行应用程…

    C# 2023年5月17日
    00
  • C#中String和StringBuilder的简介与区别

    下面为您详细讲解”C#中String和StringBuilder的简介与区别”。 一、String和StringBuilder的简介 1. String String是一个不可变类,它代表着一个字符串对象。在C#中,我们可以使用String类来表示纯文本的字符串。由于String对象是不可变的,所以对于String对象的任何改变都会导致新的对象的创建。这就意…

    C# 2023年6月7日
    00
  • AutoMapper实体映射基本用法

    AutoMapper是一种.NET库,用于将一种类型的对象映射到另一种类型的对象。使用AutoMapper,可以大大简化从一个模型对象映射到另一个模型对象的过程,特别是在大型应用程序中。以下是AutoMapper实体映射基本用法的完整攻略: 安装AutoMapper 在Visual Studio中,可以通过NuGet安装AutoMapper。在NuGet包管…

    C# 2023年6月3日
    00
  • 外键拆分手记

    我习惯性使用OData,它的$expand与层级查询非常好用,这个功能非常依赖于数据库的导航属性,也就是外键结构。最近想着把一个单体的系统拆分为多个小系统,首先需要处理外键依赖的问题。 多个服务各自有各自的数据库,数据库层面并不互通,也就无法使用外键约束。 我使用EF Core来描述数据库的结构,有两个实体类如下: public class AD_Insec…

    C# 2023年5月4日
    00
  • ASP.NET Core项目配置教程(6)

    ASP.NET Core项目配置教程(6)主要涉及如何在ASP.NET Core项目中使用配置文件。下面是ASP.NET Core项目配置教程(6)的完整攻略。 什么是配置文件? 在ASP.NET Core中,配置文件是一种存储应用程序配置信息的机制。配置文件可以包含应用程序的各种设置,例如数据库连接字符串、日志记录级别、身份验证设置等。 如何使用配置文件?…

    C# 2023年5月16日
    00
  • c#异步发送邮件的类

    C#中异步发送邮件的类可以使用SmtpClient类和MailMessage类来实现。下面是详细的攻略: 步骤一:引入命名空间 首先需要在代码文件中引入以下命名空间: using System.Net; using System.Net.Mail; 步骤二:创建邮件消息 接下来,需要创建MailMessage对象并设置发送邮件的主题、内容和发送地址等信息: …

    C# 2023年6月7日
    00
  • C#中math类的全部运算方法(总结)

    C#中Math类的全部运算方法(总结) Math类是C#中一个非常重要的数学计算类,它提供了丰富的方法来对数字进行各种数学运算,比如绝对值、三角函数、对数、幂等函数等等。在本篇文章中,我将对Math类的全部运算方法进行详细的总结和解释,方便大家快速了解和应用。 绝对值和抹零函数 Math.Abs()方法 Math.Abs()方法可以返回一个数的绝对值。简单来…

    C# 2023年6月7日
    00
  • C#内插字符串的简单使用

    C#内插字符串是一种方便的字符串构造方式,可以使用字符串插值(String interpolation)表达式 ${…} 显示地使用表达式计算值并将结果插入到字符串中。C# 6.0及以后版本支持内插字符串。 Step 1: 创建文本文件 首先需要创建一个C#代码文件(例如,使用Visual Studio或Visual Studio Code),并保存成 …

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