众果搜的博客

脚踏大地,仰望星空,致力于财经投资网站导航与在线网络工具的开发与普及

Search(博客搜索)

热文排行

最近发表

最新评论及回复

« CSS对文本长度超过宽度的处理办法 注册表扫描对比软件-RegShot »

asp.net2.0使用FileUpload控件上传图片时如何判断图片大小

使用FileUpload控件时,通常需要判别用户上传的图片是否符合网页显示的需要,不符合指定的规格,提示用户重新选择图片进行上传。(注意因是原博客文章,使用代码时去掉“前面的)

 
你可以在web.config中设置图片的尺寸,同样,也可以在数据库中建立一个图片的尺寸表,把图片的尺寸保存起来,在上传的时候取出来进行对比:
下面是在web.config中的设置:
<appSettings>
  <add key="Height" value="184" />
  <add key="Width" value="370" />
</appSettings>
在上传图片的页面中获得web.config文件中设置的图片尺寸:
if (Page.IsPostBack)
{
height = Convert.ToInt32(
ConfigurationManager.AppSettings.Get("Height"));
width = Convert.ToInt32(
ConfigurationManager.AppSettings.Get("Width"));
}
 
在Upload按钮事件代码中:
 
    if (Page.IsValid)
    {
      if (FileUpload1.HasFile)
      {
        string extension = Path.GetExtension(FileUpload1.PostedFile.FileName);
        switch (extension.ToLower())
        {
       case ".gif":
          case ".jpg":
           case ".png":
             case ".bmp":
            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
            {
              // 无法读取图片的尺寸,可能不是一个图片或照片。 
              valInvalidFile.IsValid = false;
            }
            break;
 
          default: // 上传的文件具有不正确的扩展名,即图片的类型不符合要求
            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 sel&#101;ct a file first." runat="server" Display="Dynamic" />
      <asp:CustomValidator ID="valInvalidFile" runat="server" ErrorMessage="你上传的文件不能表现为一个图片!" Display="Dynamic"></asp:CustomValidator>
      <asp:CustomValidator ID="valInvalidDimensions" runat="server" ErrorMessage="你上传的图片尺寸不合适.请选择一个高{0}px 宽{1}px的图片." Display="Dynamic" EnableViewState="false"></asp:CustomValidator>
      <asp:Label ID="lblSucces" runat="server" Text="上传图片已经被成功保存." Visible="false" EnableViewState="false"></asp:Label>
    </div>
  </form>
  • 相关文章:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-Blog 1.8 Spirit Build 80722 Code detection by Codefense

Copyright www.zhongguosou.com. Some Rights Reserved.微信号:MiZhiHeiGeTaXiaoMi