【问题标题】:DotNetNuke get URL for image uploaded via the FilePickerDotNetNuke 获取通过 FilePicker 上传的图像的 URL
【发布时间】:2013-11-12 22:10:59
【问题描述】:

我的模块设置控件上有一个 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。

必须有更好的方法。

【问题讨论】:

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


    【解决方案1】:

    我使用以下代码获取我使用 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);
    }
    

    【讨论】:

    • FileManager.Instance 是我所缺少的。
    【解决方案2】:
    var img_Name = (FileInfo)FileManager.Instance.GetFile(FilePicker.FileID)
    

    "FilePicker" 将是您的 DnnFilePicker 的 ID

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-07
      • 2014-06-08
      • 2012-04-16
      • 2012-10-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多