前台代码:
<form id="form1" runat="server">
<div>
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="btnUpload" runat="server" OnClick="btnUpload_Click" Text="上传" />
<br />
<asp:RequiredFieldValidator ID="valFileUpload1" ControlToValidate="FileUpload1"
ErrorMessage="请先选择要上传的图片" 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>
后台代码:
protected void btnUpload_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
string extension = Path.GetExtension(FileUpload1.PostedFile.FileName);
switch (extension.ToLower())
{
case ".gif":
case ".jpg":
case ".png":
case ".bmp":
case".jpeg":
try
{
//如果上传的图片符合尺寸
if (ValidateFileDimensions())
{
string fileName = Path.GetFileName(FileUpload1.PostedFile.FileName);
string saveAsName = Path.Combine(Server.MapPath("~/ProductImages/"), 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);
}
}