我需要上传.XLSX文件,我想限制其他文件格式
我的代码
[Display(Name = "File Upload")]
[FileExtensions(Extensions = ".xlsx")]
public HttpPostedFileBase VendorFileType { get; set; }
能够无限制地上传文件(验证无效) 我正在使用MVC 5.任何人共享简单示例,因此可以实现限制(仅使用数据注释(无jquery / javascript)
答案 0 :(得分:1)
文件扩展名数据注释仅适用于字符串data.i解决了这个问题,帮助验证属性被调用是自定义服务器端验证。
1.首先在项目的根目录上创建一个名为Validation的文件夹
2.在这个文件夹中创建一个名为FileExtensionValidation的类,如下代码所示:
public class FileExtensionsValidation : ValidationAttribute
{
protected override ValidationResult IsValid(object value,ValidationContext validationContext)
{
if (value != null)
{
HttpPostedFileWrapper file = (HttpPostedFileWrapper)value;
string extention = Path.GetExtension(file.FileName);
if (extention != ".xlsx")
{
return new ValidationResult(".xlsx only");
}
}
return ValidationResult.Success;
}
}
3.在首页添加
Using ProjectName.ValidationFolderName;
4.在任何文件上传之上进行验证:
public class FileUploadViewModel:BaseViewModel
{
[Required]
[FileExtensionsValidation]
public HttpPostedFileBase FileUpload { get; set; }
}