如何对字节类型进行服务器端验证。我必须上传图像文件,为此我使用了字节。但是,当我不上传图像时,它会引发错误,这是正常现象,但是当我提供图像并上传并提交图像时出现了问题,该消息仍然出现。上传图片后如何删除该消息。
.class文件
public class EmailModel
{
[Display(Name = "Attach photo")]
[Required(ErrorMessage = "Please upload image")]
public byte[] Photo { get; set; }
}
索引文件
<input type="file" name="ImageData" id="ImageData" onchange="fileCheck(this);" />
@Html.ValidationMessageFor(m => m.Photo, "", new { @class = "text-danger" })
提交表单后,我已使用此代码清除了控制器部分中的验证错误消息
Array.Clear(emailvalues.Photo, 0,emailvalues.Photo.Length);
答案 0 :(得分:2)
您可以创建自定义验证属性
public class ImageCheckAttribute : ValidationAttribute
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
try
{
using (MemoryStream ms = new MemoryStream((byte[])value))
Image.FromStream(ms);
}
catch (ArgumentException)
{
return new ValidationResult(this.FormatErrorMessage(validationContext.DisplayName));
}
return null;
}
}
并使用
[Display(Name = "Attach photo")]
[Required(ErrorMessage = "Please upload image")]
[ImageCheck(ErrorMessage = "Byte array is incorrect image")]
public byte[] Photo { get; set; }
}