2012-05-09 51 views
0

我有一個ImageHandler類,用於從活動目錄檢索照片。不過,我想在無法檢索到的情況下顯示默認圖像。我嘗試使用return Bitmap.FromFile ("~/images/default_person.jpg");,但它看起來好像正在尋找文件系統路徑。如何從項目文件夾獲取位圖?

我想指定一個圖像位於我的解決方案中的文件夾「圖像」,而不硬編碼系統路徑到代碼中。

下面是一段代碼,越來越像:

static Image GetUserPicture (string userName) 
    { 
     DirectoryEntry myLdapConnection = SCDirectoryEntry.GetDirectoryEntry (); 

     using (DirectorySearcher dsSearcher = new DirectorySearcher (myLdapConnection)) 
     { 

      dsSearcher.Filter = String.Format ("(SAMAccountName={0})", userName); 

      SearchResult result = dsSearcher.FindOne (); 
      DirectoryEntry user = result.GetDirectoryEntry (); 

       byte [ ] data = user.Properties [ "jpegPhoto" ].Value as byte [ ]; 

       if (data != null) 
       { 

         var s = new MemoryStream (data); 

         return Bitmap.FromStream (s); 

       } 

      //return default image here  
      return Bitmap.FromFile ("~/images/default_person.jpg"); 


     } 
    } 

回答

0

您可以使用Server.MapPath("~/images/default_person.jpg");

將使用Server.Mappath這個相對路徑轉換成物理路徑描述here,在MSDN頁面。

+0

'返回Bitmap.FromFile(HttpContext.Current.Server.MapPath(「images/default_person.jpg」));' –

+0

是的,你去了:) –

相關問題