我的模块的设置控件上有一个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。
必须有更好的方法。
答案 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