我有一个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 :(得分:0)
您可以使用Server.MapPath( "~/images/default_person.jpg" );
Server.MapPath会在MSDN页面中将此相对路径转换为物理路径,如描述here。