WFFM 8.1文件上载验证控件自定义

时间:2016-05-26 14:19:59

标签: validation file-upload sitecore sitecore8 web-forms-for-marketers

我正在使用WFFM 8.1 rev。 160304更新-2。 我必须在文件上传验证控件中的自定义下面进行操作:

  • 最大文件大小应为2 mb
  • 文件类型Mime类型
  • 文件必须在物理文件夹中上传。

对于前两个要求,我指的是以下网址,但它无效。

https://sitecorejunkie.com/2014/04/06/restrict-certain-files-from-being-attached-to-web-forms-for-marketers-forms-in-sitecore/

https://jonathanrobbins.co.uk/2015/10/06/sitecore-marketplace-module-secure-file-upload/

1 个答案:

答案 0 :(得分:2)

我有一个上传字段,可以满足您的一些要求(文件大小和扩展名)。它也应该是可扩展的,包括你的其他人。

我们做的是:

  1. 创建一个继承自FileUploadField
  2. 的自定义字段
  3. 添加自定义属性 public override HttpPostedFileBase Value { get; set; },例如[LimitAllowedExtensions][LimitFileSize]
  4. 通过覆盖DynamicValidationBase创建这些自定义属性,例如: public sealed class LimitAllowedExtensionsAttribute : DynamicValidationBase
  5. 在这些课程中,使用您想要的验证覆盖protected override ValidationResult ValidateFieldValue(IViewModel model, object value, ValidationContext validationContext)
  6. 在Sitecore中注册您的自定义字段,您就可以了。 我不确定如何上传到物理文件夹,您可能想查看FileUploadField中的其他函数(也许可以使用反编译器检查原始代码)。

    写了blog post解释这个。