`

asp.net 2.0中判断上传的图片是否符合规格

    博客分类:
  • .NET
阅读更多
  在asp.net 2.0中,在上传图片时,有时往往要判断用户上传的图片是否符合指定规格,如果不符合规格,
则不予以上传,那么可以用以下的代码片段进行判断。
    首先在web.config文件中设置图片上传的限制尺寸,比如
<appSettings>
  <add key="RequiredHeight" value="184"/>
  <add key="RequiredWidth" value="370"/>
</appSettings>

  之后,在页面获得web.config文件里预先设定的尺寸
if (Page.IsPostBack)
{
height = Convert.ToInt32(
ConfigurationManager.AppSettings.Get("RequiredHeight"));
width = Convert.ToInt32(
ConfigurationManager.AppSettings.Get("RequiredWidth"));
}

之后在“上传”按钮的事件代码中如下编写

    if (Page.IsValid)
    {
      if (FileUpload1.HasFile)
      {
        string extension = Path.GetExtension(FileUpload1.PostedFile.FileName);
        switch (extension.ToLower())
        {
       case ".gif":
          case "jpg":
            try
            {
        //如果符合尺寸
              if (ValidateFileDimensions())
              {
                string fileName = Path.GetFileName(FileUpload1.PostedFile.FileName);
                string saveAsName = Path.Combine(Server.MapPath("~/Uploads/"), fileName);
                FileUpload1.PostedFile.SaveAs(saveAsName);
                lblSucces.Visible = true;
              }
              else
              {
                valInvalidDimensions.IsValid = false;
                valInvalidDimensions.ErrorMessage = String.Format(valInvalidDimensions.ErrorMessage, height, width);
              }
            }
            catch
            {
              // Unable to read the file dimensions. The uploaded file is probably not an image.
              valInvalidFile.IsValid = false;
            }
            break;

          default: // The uploaded file has an incorrect extension
            valInvalidFile.IsValid = false;
            break;
        }
      }
    }

   public bool ValidateFileDimensions()
  {
    using (System.Drawing.Image myImage = System.Drawing.Image.FromStream(FileUpload1.PostedFile.InputStream))
    {
      return (myImage.Height == height && myImage.Width == width);
    }
  }

要留意其中ValidateFileDimensions()中完成了判断尺寸的过程了
最后,页面放一些验证控件
<form id="form1" runat="server">
    <div>
      <asp:FileUpload ID="FileUpload1" runat="server" />
      <asp:Button ID="btnUpload" runat="server" OnClick="btnUpload_Click" Text="Upload File" />
      <br />
      <asp:RequiredFieldValidator ID="valFileUpload1" ControlToValidate="FileUpload1" ErrorMessage="You must select a file first." runat="server" Display="Dynamic" />
      <asp:CustomValidator ID="valInvalidFile" runat="server" ErrorMessage="The file you uploaded doesn't appear to be a valid image." Display="Dynamic"></asp:CustomValidator>
      <asp:CustomValidator ID="valInvalidDimensions" runat="server" ErrorMessage="The image you uploaded has incorrect dimensions. Please select a file with a height of {0}px and a width of {1}px." Display="Dynamic" EnableViewState="false"></asp:CustomValidator>
      <asp:Label ID="lblSucces" runat="server" Text="The file you uploaded has been saved to disk successfully." Visible="false" EnableViewState="false"></asp:Label>
    </div>
  </form>

分享到:
评论

相关推荐

    ASP.NET 2.0入门经典:C#编程篇.pdf

    4. **Web Forms**:Web Forms是ASP.NET 2.0中的一个主要开发模型,它允许开发者使用控件驱动的方式来构建动态Web应用。Web Forms控件与Windows Forms控件类似,可以响应用户交互并更新视图。 5. **控件**:ASP.NET ...

    ASP.NET2.0网站开发全程解析[收集].pdf

    这个示例网站包含了论坛、民意调查、文章管理以及电子商务等常见功能,读者可以通过这个案例学习到如何在实际项目中运用ASP.NET 2.0。 书中强调了如何利用ASP.NET 2.0的内置功能来减少编程工作量,比如主题、成员...

    ASP.net 2.0网络编程从入门到精通-修订.rar

    - Windows Communication Foundation(WCF)虽不在ASP.NET 2.0中,但它是.NET Framework 3.0及更高版本中的集成服务框架。 本教程修订版可能涵盖了以上知识点的详细解释和实例,通过学习,开发者将能够熟练运用ASP...

    ASP.NET 2.0程序设计案例教程(课件)

    2. **控件和事件模型**:在ASP.NET 2.0中,服务器控件提供了一种直观的方式来创建动态网页。学习者将了解如何使用各种内置控件,如文本框、按钮、复选框等,并理解控件之间的事件交互,如点击事件、提交事件等。 3....

    asp.net 2.0动态网站开发教程

    在ASP.NET 2.0中,有一系列预定义的服务器控件,如Label、TextBox、Button、GridView等,这些控件可以直接在页面上拖放并进行配置,极大地简化了网页设计。此外,控件间的事件处理模型也得到了强化,使得代码编写...

    Programming Microsoft ASP.NET 2.0 Applications - Advanced Topics

    《Programming Microsoft ASP.NET 2.0 Applications - Advanced Topics》是一本深入探讨ASP.NET 2.0高级应用开发的专业书籍。本书旨在帮助开发者充分利用ASP.NET 2.0的强大功能,实现高效、可扩展和高度定制化的Web...

    天轰穿ASP.NET2.0视频教程代码(共两部份)

    此"天轰穿ASP.NET2.0视频教程"针对初学者和进阶开发者,通过详细的教学指导,帮助用户掌握ASP.NET 2.0的核心概念和技术。 1. **ASP.NET 2.0架构** ASP.NET 2.0基于.NET Framework 2.0,引入了统一的页面生命周期...

    ASP.NET 2.0高级编程(特别版)》[英文CHM电子书+源代码].

    在全面介绍ASP.NET各种编程技能的同时重点介绍了ASP.NET 2.0版本中的巨大变化,详细阐述了ASP.NET 2.0中所包含的每个新特性。书中提供了大量的实例,可帮助读者快速掌握如何在.NET Framework下构建功能强大的ASP.NET...

    Wrox Asp.Net 2.0 Instant Results(asp.net2.0经典案例教程)

    在ASP.NET 2.0中,微软引入了一系列增强功能,如控件生命周期的改进、数据绑定模型的扩展、母版页(Master Pages)和站点导航等,极大地提高了开发效率和代码复用性。书中将深入探讨这些关键特性,并通过实际项目来...

    ASP.NET 2.0入门经典(第4版)

    《ASP.NET 2.0 入门经典》将逐步引导您使用 ASP.NET 2.0 创建动态的、数据驱动的、复杂的Web站点。在本章结束时,我们将解释一些基本的想法并介绍一个完整的示例站点。然后将学习怎样使用 Visual Web Developer ...

    ASP.NET2.0实用教程(C#版)书中例子.rar

    这个“ASP.NET2.0实用教程(C#版)书中例子”PPT很可能会涵盖以上这些主题,并通过实例演示如何在实践中应用这些技术。PPT中的例子可能包括创建简单的Web表单、使用控件进行数据绑定、实现用户身份验证以及利用AJAX...

    Asp.net 2.0高级编程(pdf)

    内容代码,使用VB.net和C# 两种解释 &lt;br&gt;第1章ASP.NET2.0概述 1 1.1简史 1 1.2ASP.NET2.0的目标 2 1.2.1开发人员的效率 3 1.2.2管理 5 1.2.3性能和可伸缩性 8 1.3ASP.NET2.0的其他新特性 8 ...

    ASP.NET2.0 经典案例教程

    通过探索这些项目的设计和代码,读者可快速掌握使用ASP.NET 2.0开发应用程序的技巧,从空白开始创建自己的网站,或在自己开发的网站中重用这些项目提供的功能。本书共分为12章,每章通过一个项目实现一种常见的网站...

    asp.net 2.0 宝典

    在ASP.NET 2.0中,开发者可以使用Visual Studio或其他支持的IDE来快速构建Web应用程序,了解如何设置项目结构、配置IIS以及处理部署问题都是至关重要的。这一部分可能会讲解如何配置Web.config文件,定义应用程序的...

    ASP.NET2.0+sql server 网络应用开发详解

    在ASP.NET 2.0版本中,引入了许多新特性,如改进的页面生命周期管理、母版页(Master Pages)用于统一网站布局、自定义控件增强用户体验、配置管理工具简化部署过程、以及ASP.NET AJAX框架实现页面无刷新交互等。...

    ASP.NET 2.0介绍

    在ASP.NET 2.0中,虽然DataAdapter和DataSet仍然可用,但引入了新的数据访问技术,如Entity Framework(在后续版本中引入)和Linq to SQL,它们提供了更高级别的抽象,简化了数据访问代码,使得与数据库的交互更为...

    ASP.NET 2.0入门经典(第4版)源码

    在ASP.NET 2.0中,有几个关键的知识点值得深入探讨: 1. **控件模型**:ASP.NET 2.0引入了丰富的服务器控件,如Label、TextBox、Button等,这些控件提供了丰富的交互功能,并且能够方便地与后台代码交互。通过事件...

    ASP.NET AJAX程序设计——第I卷:服务器端ASP.NET 2.0 AJAX Extensions与ASP.NET AJAX Control Toolkit 源代码

    这部分内容不需要读者有任何的客户端开发知识,只要在Visual Stuio中轻松拖放即可实现强大的客户端Ajax功能,例如局部页面更新、异步回送、拖放、动画等,非常适合为现有的ASP.NET 2.0应用程序添加少量的Ajax特性,...

Global site tag (gtag.js) - Google Analytics