我正在为上传图片编写自定义模块。 上传文件到自定义文件夹后。加载图像时,图像的地址是正确的,但它不会在图像控制中显示。
如何在DotNetNuke自定义模块中显示图像?
//Save Picture Code:
fileuppic.PostedFile.SaveAs(MapPath("~/images/Hotels/" + filename));
//Load Picture Code:
while (dr.Read())
{
imgpic.ImageUrl = MapPath("~/images/Hotels/") + dr["Picture"].ToString();
}
//my ImageControl :
<asp:Image ID="imgpic" runat="server" />
答案 0 :(得分:4)
如果您已经拥有fileId
,则可以执行以下操作:
VB.NET
Protected Function GetPath(fileId As Integer) As String
Dim fi = FileManager.Instance.GetFile(fileId)
Return FileManager.Instance.GetUrl(fi)
End Function
C#
private string GetPath(int fileId)
{
var fi = FileManager.Instance.GetFile(fileId);
return FileManager.Instance.GetUrl(fi);
}
答案 1 :(得分:3)
您并没有像DNN那样使用文件系统。图像应该通过DNN的DotNetNuke.Services.FileSystem命名空间来管理,你可能会编写很多你不需要的代码来保存图像(尝试使用dnnFilePickerUploader控件,它会处理上传并传递给你一个FileId )。一旦FileId与您的对象持久存在,您可以使用类似的东西来加载图像:
private string GetPath(int fileId)
{
StringBuilder sb = new StringBuilder("/Portals/");
IFileInfo fi = FileManager.Instance.GetFile(fileId);
sb.Append(fi.PortalId);
sb.Append("/");
sb.Append(fi.RelativePath);
return sb.ToString();
}