asp.net 2.0中判断上传的图片是否符合规格
2007-03-13 14:15
399 查看
在asp.net 2.0中,在上传图片时,有时往往要判断用户上传的图片是否符合指定规格,如果不符合规格,
则不予以上传,那么可以用以下的代码片段进行判断。
首先在web.config文件中设置图片上传的限制尺寸,比如
<appSettings>
<add key="RequiredHeight" value="184"/>
<add key="RequiredWidth" value="370"/>
</appSettings>
之后,在页面获得web.config文件里预先设定的尺寸
之后在“上传”按钮的事件代码中如下编写
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>
则不予以上传,那么可以用以下的代码片段进行判断。
首先在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中判断上传的图片是否符合规格
- asp.net 2.0中判断上传的图片是否符合规格
- asp.net 2.0中判断上传的图片是否符合规格
- asp.net 2.0中判断上传的图片是否符合规格
- asp.net 上传判断文件是否为图片
- asp.net上传图片并判断是否存在限制图片大小
- asp.net FileUpload 判断上传文件是否为图片
- asp.net判断上传图片是否合法
- ASP.net 2.0 C#判断文件夹与文件是否存在
- asp.net实现上传图片时判断图片的模式GRB或CMYK的方法
- 『ASP.NET 2.0』图片上传/水印/生成缩略图
- asp.net判断FileUpload选择的文件是否是图片
- asp.net(C#)上传单个图片并判断图片的类型和大小
- 常量,字段,构造方法 调试 ms 源代码 一个C#二维码图片识别的Demo 近期ASP.NET问题汇总及对应的解决办法 c# chart控件柱状图,改变柱子宽度 使用C#创建Windows服务 C#服务端判断客户端socket是否已断开的方法 线程 线程池 Task .NET 单元测试的利剑——模拟框架Moq
- C#,ASP.NET判断两张图片是否相同
- 网页上传图片 判断类型 检测大小 剪切图片 ASP.NET版本
- Asp.net 2.0 无刷新图片上传+回显
- asp.net 2.0 FileUpload控件 上传图片 带预览