DotNetNuke获取通过FilePicker上传的图像的URL

时间:2013-11-12 22:10:59

标签: dotnetnuke dotnetnuke-module dotnetnuke-7 dotnetnuke-settings

我的模块的设置控件上有一个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 / [虚拟目录]”,DefaultHeaderImage是保存从FilePicker.FilePath保存的值的属性

我已经读过使用Alias是一个坏主意,我完全不喜欢使用完全限定的URL而不是相对URL。

必须有更好的方法。

2 个答案:

答案 0 :(得分:2)

我使用以下代码获取使用dnn:FilePicker上传的图像的相对路径:

using DotNetNuke.Services.FileSystem;
...

var image = (FileInfo)FileManager.Instance.GetFile(FilePicker.FileID);
if (image != null)
{
    imgPhoto.ImageUrl = FileManager.Instance.GetUrl(image);
}

如果您需要完整网址,我使用以下代码:

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);
}

答案 1 :(得分:0)

notifyNotificationCount

“ FilePicker”将是您DnnFilePicker的ID