using System; using System.Collections.Generic; using System.Web; using Zhaizj.Framework.Config; using Zhaizj.Framework.Drawing; using Zhaizj.Framework.Web; using Zhaizj.Framework.Web.Mvc; namespace Zhaizj.Framework { /// /// 系统路径 /// /// 所有的路径末尾都有斜杠"/",以区别于没有斜杠作后缀的文件名 public class SysPath { private SysPath() { } /// /// 系统路径信息(全局缓存) /// public static SysPath Instance = new SysPath(); public String Root { get { return SystemInfo.RootPath; } } //------------------------------------ 内部请求 --------------------------------------------------- public String DiskStatic { get { return StaticPath.Instance.DiskStatic; } } public String DiskSpaceSkin { get { return StaticPath.Instance.DiskSpaceSkin; } } public String DiskGroupSkin { get { return StaticPath.Instance.DiskGroupSkin; } } public String DiskSiteSkin { get { return StaticPath.Instance.DiskSiteSkin; } } public String DiskJs { get { return StaticPath.Instance.DiskJs; } } public String DiskImg { get { return StaticPath.Instance.DiskImg; } } public String DiskCss { get { return StaticPath.Instance.DiskCss; } } public String DiskUpload { get { return StaticPath.Instance.DiskUpload; } } public String DiskPhoto { get { return StaticPath.Instance.DiskPhoto; } } public String DiskAvatar { get { return StaticPath.Instance.DiskAvatar; ; } } public String DiskGroupLogo { get { return StaticPath.Instance.DiskGroupLogo; } } //------------------------------------ 外部请求(静态化) --------------------------------------------------- public String Static { get { return StaticPath.Instance.Static; } } public String Upload { get { return StaticPath.Instance.Upload; } } public String Avatar { get { return StaticPath.Instance.Avatar; } } public String AvatarGuest { get { return StaticPath.Instance.AvatarGuest; } } public String Photo { get { return StaticPath.Instance.Photo; } } public String GroupLogo { get { return StaticPath.Instance.GroupLogo; } } public String SpaceSkin { get { return StaticPath.Instance.SpaceSkin; } } public String GroupSkin { get { return StaticPath.Instance.GroupSkin; } } public String SiteSkin { get { return StaticPath.Instance.SiteSkin; } } public String Editor { get { return StaticPath.Instance.Editor; } } public String Img { get { return StaticPath.Instance.Img; } } public String ImgStar { get { return strUtil.Join( Img, "Star/" ); } } public String Js { get { return StaticPath.Instance.Js; } } public String Skin { get { return StaticPath.Instance.Skin; } } public String Css { get { return StaticPath.Instance.Css; } } /************************************* 方法 *********************************************/ public String GetPhotoOriginal( String relativeUrl ) { if (strUtil.IsNullOrEmpty( relativeUrl )) return ""; if (relativeUrl.StartsWith( sys.Path.Photo )) return relativeUrl; return strUtil.Join( sys.Path.Photo, relativeUrl ); } public String GetPhotoThumb( String relativeUrl ) { return GetPhotoThumb( relativeUrl, ThumbnailType.Small ); } public String GetPhotoThumb( String relativeUrl, ThumbnailType ttype ) { return Zhaizj.Framework.Drawing.Img.GetThumbPath( GetPhotoOriginal( relativeUrl ), ttype ); } public String GetPhotoRelative( String originalUrl ) { if (strUtil.IsNullOrEmpty( originalUrl )) return ""; if (originalUrl.StartsWith( sys.Path.Photo )) { return strUtil.TrimStart( originalUrl, sys.Path.Photo ).TrimStart( '/' ); } return originalUrl; } public String GetAvatarOriginal( String relativeUrl ) { relativeUrl = processEmptyAvatar( relativeUrl ); if (relativeUrl.StartsWith( sys.Path.Avatar )) { return Zhaizj.Framework.Drawing.Img.GetOriginalPath( relativeUrl ); } else { return Zhaizj.Framework.Drawing.Img.GetOriginalPath( sys.Path.Avatar + relativeUrl ); } } public String GetAvatarThumb( String relativeUrl ) { return GetAvatarThumb( relativeUrl, ThumbnailType.Small ); } public String GetAvatarThumb( String relativeUrl, ThumbnailType ttype ) { String originalAvatar = GetAvatarOriginal( relativeUrl ); return Zhaizj.Framework.Drawing.Img.GetThumbPath( originalAvatar, ttype ); } private String processEmptyAvatar( String relativeUrl ) { if (strUtil.IsNullOrEmpty( relativeUrl )) return AvatarConstString; return relativeUrl; } public String GetGroupLogoOriginal( String relativeUrl ) { relativeUrl = processEmptyGroupLogo( relativeUrl ); if (relativeUrl.StartsWith( sys.Path.GroupLogo )) { return Zhaizj.Framework.Drawing.Img.GetOriginalPath( relativeUrl ); } else { return Zhaizj.Framework.Drawing.Img.GetOriginalPath( sys.Path.GroupLogo + relativeUrl ); } } public String GetGroupLogoThumb( String relativeUrl ) { return GetGroupLogoThumb( relativeUrl, ThumbnailType.Small ); } public String GetGroupLogoThumb( String relativeUrl, ThumbnailType ttype ) { String originalGroup = GetGroupLogoOriginal( relativeUrl ); return Zhaizj.Framework.Drawing.Img.GetThumbPath( originalGroup, ttype ); } private String processEmptyGroupLogo( String relativeUrl ) { if (strUtil.IsNullOrEmpty( relativeUrl )) return GroupLogoConstString; return relativeUrl; } public static readonly String AvatarConstString = "face/guest.jpg"; public static readonly String GroupLogoConstString = "group.jpg"; } }