DotNetNuke получает URL для изображения, загруженного через FilePicker
У меня есть dnn:FilePicker в моем контроле настроек для моего модуля. Я могу получить путь для изображения из FilePicker.FilePath. Это дает мне что-то вроде:
/Images/Headers/Default.jpg
Как, черт возьми, я иду от этого, чтобы:
/ [виртуальный каталог]/portals/0/Images/Header/Default.jpg
Это не похоже на то, что должно быть трудно сделать, но я не могу найти правильную комбинацию слов в Google, чтобы получить ответ.
Прямо сейчас я делаю что-то вроде:
imgPhoto.ImageUrl = "http://"+PortalAlias.HTTPAlias+"/portals/0/"+DefaultHeaderImage;
Где PortalAlias.HTTPAlias преобразуется в "localhost/[virtual directory]", а DefaultHeaderImage - это свойство, содержащее значение, сохраненное из FilePicker.FilePath.
Я читал, что использовать псевдоним - плохая идея, и я вовсе не поклонник использования полного URL-адреса вместо относительного URL-адреса.
Должен быть лучший способ.
2 ответа
Я использую следующий код, чтобы получить относительный путь к изображению, которое я загружаю с помощью dnn:FilePicker:
using DotNetNuke.Services.FileSystem;
...
var image = (FileInfo)FileManager.Instance.GetFile(FilePicker.FileID);
if (image != null)
{
imgPhoto.ImageUrl = FileManager.Instance.GetUrl(image);
}
Если вам нужен полный URL, я использую следующий код:
string baseUrl = (Request.IsSecureConnection ? "https://" : "http://") + base.PortalAlias.HTTPAlias;
var image = (FileInfo)FileManager.Instance.GetFile(FilePicker.FileID);
if (image != null)
{
imgPhoto.ImageUrl = baseUrl + FileManager.Instance.GetUrl(image);
}
var img_Name = (FileInfo)FileManager.Instance.GetFile(FilePicker.FileID)
FilePicker будет идентификатором вашего DnnFilePicker