2013-05-21 3 views
0

업로드 이미지 용 맞춤 모듈을 작성하고 있습니다. 파일을 사용자 정의 폴더에 업로드 한 후 이미지를로드 할 때 이미지의 주소가 올바르지 만 이미지 컨트롤에는 표시되지 않습니다.DotNetNuke 맞춤 모듈에 이미지를 표시하는 방법은 무엇입니까?

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" /> 
+1

작품을 보여주고 무엇을 시도했는지 사람들에게 알려주십시오. –

+0

동적 등록을 사용하고 있습니까? –

+0

이 줄이 바뀌어 내 ​​문제가 해결되었습니다. imgpic.ImageUrl = MapPath ("~/images/Hotels /") + dr [ "Picture"]. ToString(); to imgpic.ImageUrl = "..//..//images//Hotels//"+ dr [ "Picture"]. ToString(); –

답변

2

DNN에서 의도 한대로 파일 시스템을 실제로 사용하지 않습니다. 이미지는 DNN의 DotNetNuke.Services.FileSystem 네임 스페이스를 통해 관리해야하며 이미지를 저장하기 위해 필요하지 않은 많은 코드를 작성해야합니다 (dnnFilePickerUploader 컨트롤을 사용하여 업로드를 처리하고 FileId를 전달합니다.). 당신이 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(); 
} 
+0

감사합니다. 다중 포털 사이트와 함께 위치하는 이미지를 표시하는 데 도움이되었습니다. – Ryanb58

3

을, 당신은 다만 수 :

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

나는 C#과 같은 것이 될 것이라고 생각한다. private string GetPath (int fileId) { var fi = FileManager.Instance.GetFile (fileId); return FileManager.Instance.GetUrl (fi); } –