WFFM Image Загруженное событие Sitecore 8

Мне нужно выполнить некоторые пользовательские операции после загрузки элемента загрузки файла WFFM в библиотеку мультимедиа Sitecore.

Как я могу получить загруженный элемент медиа WFFM в C#. Какое событие / процессор / конвейер / конфигурацию нужно добавить / обновить.

Я использую приведенный ниже код, он работает, когда я загружал медиа вручную, а не когда медиа приходит из веб-формы Marketer:-

public class ProcessMedia : UploadProcessor
{
    public void Process(UploadArgs args)
    {
    }
}

1 ответ

Решение

Вы можете добавить собственный процессор к formUploadFile конвейер, определение по умолчанию которого можно найти в Sitecore.Forms.config,

public class ProcessMedia
{
    public void Process(FormUploadFileArgs args)
    {
        var itemUri = ItemUri.Parse(args.Result);
        var item = Sitecore.Data.Database.GetItem(itemUri);
        // do some stuff...
    }
}

А затем исправьте ваш процессор:

<sitecore>
  <pipelines>
    <formUploadFile>
      <processor type="MyCustomProject.Forms.Pipelines.ProcessMedia, MyCustomProject.Forms" />
    </formUploadFile>
  </pipelines>  
</sitecore>

Процессор будет исправлен после Sitecore.Form.Core.Pipelines.FormUploadFile.Save который является конвейером, ответственным за сохранение файлов в медиа-библиотеке в WFFM.

Другие вопросы по тегам