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" );


        }
    }
4

1 回答 1

0

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

Server.MapPath 会将此相对路径转换为物理路径,如此所述,在 MSDN 页面中。

于 2012-05-09T12:45:52.007 回答