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日

相关文章

  • MSScriptControl.ScriptControl组件的用法实例

    MSScriptControl.ScriptControl组件的用法实例 简介 MSScriptControl.ScriptControl是一个用于Windows开发的脚本控制器,在运行时可以解释和执行脚本代码。它支持多种脚本语言,如JavaScript、VBScript等,并提供了丰富的API接口,可用于实现各种脚本功能,是非常实用的开发工具。 安装 MS…

    C# 2023年5月31日
    00
  • 通过C#实现自动售货机接口

    通过C#实现自动售货机接口的完整攻略如下: 一、了解接口 在开始编写自动售货机接口之前,需要先了解什么是接口。接口(Interface)是一种抽象的类型,它定义了让其他程序集(Assembly)访问该程序集的功能。通过接口,可以使一个类实现多个不相关的类型。 二、创建项目 打开Visual Studio,创建一个新的C#控制台应用程序项目; 在解决方案资源管…

    C# 2023年6月1日
    00
  • 浅析.net core 抛异常对性能影响

    浅析 .NET Core 抛异常对性能影响 在 .NET Core 中,抛出异常是一种常见的错误处理方式。然而,抛出异常会对性能产生一定的影响。本攻略将浅析 .NET Core 抛异常对性能的影响,并提供多个示例说明。 抛异常对性能的影响 抛出异常会对性能产生一定的影响,主要表现在以下几个方面: CPU 时间:抛出异常会消耗一定的 CPU 时间,这会影响应用…

    C# 2023年5月17日
    00
  • C#实现动态创建接口并调用的实例

    在C#中,动态创建接口并调用是一种常见的编程模式,它可以帮助开发者实现更加灵活和可扩展的代码结构。在本攻略中,我们将介绍如何使用C#实现动态创建接口并调用,并提供两个示例来说明其用法。 以下是两个示例,介绍如何使用C#实现动态创建接口并调用: 示例一:使用Reflection.Emit动态创建接口并调用 首先,我们需要引入System.Reflection.…

    C# 2023年5月15日
    00
  • c# 常用框架汇总

    C#常用框架汇总 在C#开发中,有很多常用的框架可以帮助我们快速开发、简化操作和提高效率,比如ASP.NET Core、Entity Framework、NLog等。本篇攻略将会汇总一些常用的C#框架,并对这些框架的特点、使用方法和示例进行详细讲解。 1. ASP.NET Core ASP.NET Core是微软官方推出的一套跨平台的Web应用程序框架,它旨…

    C# 2023年5月15日
    00
  • C#多线程编程中的锁系统(四):自旋锁

    当多个线程需要访问共享资源时,可能会出现竞争的情况,如果不加以处理,就会出现数据不一致的问题。因此,需要使用锁来保证共享资源的访问序列化。本文将介绍自旋锁的使用和实现方式。 什么是自旋锁? 自旋锁是一种锁机制,它是基于循环检测的方法实现的。当一个线程需要访问共享资源时,如果发现锁已经被其他线程占用,它就会进入一个忙循环(自旋)中,等待锁变为可用。在“忙循环”…

    C# 2023年5月15日
    00
  • WIN10企业版LTSC如何激活 win10企业版ltsc激活密钥(亲测有效)

    如何激活 WIN10企业版LTSC 什么是WIN10企业版LTSC Windows 10 Enterprise LTSC (Long-Term Servicing Channel) 是一款基于 Windows 10 的企业版操作系统,专为企业用户设计。与其他版本的Windows相比,它专为企业用户而设计,提供了更长的生命周期支持、更强的安全性和更好的兼容性等…

    C# 2023年6月6日
    00
  • C#去除DataTable重复数据的三种方法

    标题:C#去除DataTable重复数据的三种方法 方法一:使用Linq去重 步骤: 1.将DataTable转换为IEnumerable对象; 2.使用Linq的Distinct方法去重; 3.将结果转换为DataTable对象。 示例: DataTable table = new DataTable(); // 假设table中包含重复数据 IEnume…

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