Как получить байты изображения или URL, используя его GUID? - PullRequest
0 голосов
/ 26 ноября 2018

Работа с Kentico 11.0.26 CMS и веб-сайтом MVC.

Пользовательский тип страницы только для содержимого с полем изображения.После того, как изображение загружено на страницу, мне нужно отобразить его на сайте MVC.Но сгенерированный код Kentico MyPageTypeProvider.GetMyPageType((int nodeId, string cultureName, string siteName) возвращает объект страницы, который содержит только GUID изображения.Нет байтов, нет URL.

Как получить байты или URL-адрес загруженного изображения?

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Если вам нужны байты, вы можете сделать это:

var attachment =DocumentHelper.GetAttachment(guid, SiteContext.CurrentSiteName, true);
var bytes = attachment.AttachmentBinary;

Если вы хотите URL-адрес изображения, вы можете сделать что-то вроде этого:

 imageUrl = $"/getattachment/{guid}/attachment.aspx"

Эта документация объясняет больше способов работы с вложениями.

0 голосов
/ 26 ноября 2018

Вам нужно будет либо разрешить URL, либо получить файл по GUID.Проблема в том, что Kentico Nuget API, по-видимому, не предоставляет достаточного количества опций для получения двоичных файлов.

HelperMethods из Kentico.Content.Web.MVC NuGet, кажется, хорошее начало:

https://github.com/Kentico/Mvc/tree/master/src/Kentico.Content.Web.Mvc

С их помощью вы можете получить URL файла и использовать:

using (var client = new WebClient())
{
    client.DownloadFile("http://example.com/file/song/a.mpeg", "a.mpeg");
}

Или вы можете написать свой собственный класс или службу, ссылаться на DLL-библиотеки Kentico и использовать:

AttachmentBinaryHelper.GetFilePhysicalPath(string siteName, string guid, string extension)
...