Kentico - Вложение поля файла BizForm / URL загрузки - PullRequest
0 голосов
/ 03 октября 2018

Для поля BizForm типа File с использованием элемента управления Upload file записанные данные отправки для поля сохраняются в виде строки, аналогичной значению a858eda6-4699-4bda-81d0-1b85d69aa9a7.pdf/test.pdf для PDF с именем test.pdfс полем с кодовым именем Foo.Я пытаюсь получить URL для этого загруженного документа для данной отправки BizForm.Попытка доступа к вложению с использованием следующих URL-адресов приводит к 404 ошибкам:

https://somesite.com/getattachment/a858eda6-4699-4bda-81d0-1b85d69aa9a7.pdf/test.pdf
https://somesite.com/getattachment/a858eda6-4699-4bda-81d0-1b85d69aa9a7.pdf/test.pdf.aspx
https://somesite.com/CMSPages/GetFile.aspx?guid=a858eda6-4699-4bda-81d0-1b85d69aa9a7

Как можно создать URL-адрес для доступа к полю File данного представления BizForm, в котором используется элемент управления Upload file для поля скодовое имя Foo?И / или как можно получить доступ из кода, если я знаю идентификатор отправки BizForm в чем-то вроде BizFormItemEvents.Insert.After обработчика.

Спасибо за любую помощь, которую вы можете предоставить.

1 Ответ

0 голосов
/ 03 октября 2018

Попробуйте https: //somesite.com/CMSPages/GetBizFormFile.aspx?filename=a858eda6-4699-4bda-81d0-1b85d69aa9a7.pdf

вы можете попробовать макрос, например:

{%  
row = Siteobjects.Forms["FormCodeName"].Items.Where("ItemId = 123").FirstItem;
row["attachmentFieldname"]
#%}

Вот старая ссылка на работа с файлами форм , большинствоэто все еще в силе.это даст некоторые идеи.Вот ссылка на GetBizFormFile.aspx.cs

Используя API , это должно быть довольно просто:

var filepath =  BizFormItemProvider.GetItems(formClassName)
.Where("itemid = 123")
.AsEnumerable().FirstOrDefault().GetValue("FileField")    

Вы получите то же самоеформат: <GUID>.<extension>/<orig_name>.<extension>.Затем вы можете разобрать и сделать из него URL ~/CMSPages/GetBizFormFile.aspx?filename=<GUID>.<extension>

...