using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.IO; using CY.Infrastructure; using CY.BLL; using CY.Model; using System.Web.SessionState; using CY.Infrastructure.Common; namespace CY.WebForm { /// /// OnlineAdviserLOGO 的摘要说明 /// public class OnlineAdviserLOGO : IHttpHandler, IReadOnlySessionState, IRequiresSessionState { #region 定义目录和初始 /// /// 临时目录 /// static string temppath = "/images/Upload/" + DateTime.Now.ToString("yyyyMMdd") + "/temp/"; /// /// 保存文件目录 /// static string path = "/images/Upload/" + DateTime.Now.ToString("yyyyMMdd") + "/"; /// /// 当前登陆人 /// EC_MemberBasic m_EC_MemberBasic = new EC_MemberBasic(); public void ProcessRequest(HttpContext context) { m_EC_MemberBasic = context.Session["nowMemberLogin"] as EC_MemberBasic; //区分参数 string AjaxSign = context.Request.QueryString["input"]; //返回上次后的地址 string overpath = ""; //上传 string result = fajaxUpLoad(context, out overpath); DealAjax(AjaxSign, overpath); HttpContext.Current.Response.Clear(); HttpContext.Current.Response.Write(result); HttpContext.Current.Response.End(); } #endregion #region 修改部分 /// /// 处理程序 /// /// 区分参数 /// 文件地址 private void DealAjax(string AjaxSign, string path) { if (AjaxSign.IndexOf("OnlineAdviser") >= 0) { EC_OnlineAdviserBLL bll_EC_OnlineAdviserBLL = new EC_OnlineAdviserBLL(); //path存储到用户头像字段 EC_OnlineAdviser m_EC_OnlineAdviser = bll_EC_OnlineAdviserBLL.GetModelByKeyid(AjaxSign.Replace("OnlineAdviser", "").ToInt32()); if (m_EC_OnlineAdviser != null && !string.IsNullOrEmpty(path)) { m_EC_OnlineAdviser.LOGO = path; //LOGO[Type=string] - 头像 bll_EC_OnlineAdviserBLL.UpdateModel(m_EC_OnlineAdviser); } } } #endregion #region 处理程序 private string fajaxUpLoad(HttpContext context, out string overpath) { overpath = ""; if (!string.IsNullOrEmpty(context.Request["Filename"]) && !string.IsNullOrEmpty(context.Request["Upload"])) { CY.WebForm.cs.UploadCS.UpFileResult _UpFileResult0 = CY.WebForm.cs.UploadCS.Upload("", temppath, ""); //string filepath = CY.WebForm.cs.UploadCS.GetRootUrl(_UpFileResult0.returnfilename.Count > 0 ? _UpFileResult0.returnfilename[0].ToString() : ""); string filepath = (_UpFileResult0.returnfilename.Count > 0 ? _UpFileResult0.returnfilename[0].ToString() : ""); HttpContext.Current.Response.Clear(); HttpContext.Current.Response.Write(filepath); HttpContext.Current.Response.End(); } if (!string.IsNullOrEmpty(context.Request["avatar1"]) && !string.IsNullOrEmpty(context.Request["avatar2"]) && !string.IsNullOrEmpty(context.Request["avatar3"])) { string result = string.Empty; //if (!(SaveAvatar("avatar1", uid) && SaveAvatar("avatar2", uid) && SaveAvatar("avatar3", uid))) if (!SaveAvatar("avatar1", path, out overpath)) {//失败 result = ""; } else { result = ""; } return result; } return null; } private byte[] FlashDataDecode(string s) { byte[] r = new byte[s.Length / 2]; int l = s.Length; for (int i = 0; i < l; i = i + 2) { int k1 = ((int)s[i]) - 48; k1 -= k1 > 9 ? 7 : 0; int k2 = ((int)s[i + 1]) - 48; k2 -= k2 > 9 ? 7 : 0; r[i / 2] = (byte)(k1 << 4 | k2); } return r; } private bool SaveAvatar(string avatar, string path, out string overpath) { overpath = ""; byte[] b = FlashDataDecode(HttpContext.Current.Request[avatar]); if (b.Length == 0) return false; string size = ""; if (avatar == "avatar1") size = "large"; else if (avatar == "avatar2") size = "medium"; else size = "small"; string filename = DateTime.Now.ToString("yyyyMMddHHmmssffff") + MathRandom.RandomNumber(4).ToString() + "_{0}." + "jpg"; filename = string.Format(filename, size); string AllFolderPath = CY.WebForm.cs.UploadCS.GetMapPath(path); if (!Directory.Exists(AllFolderPath)) Directory.CreateDirectory(AllFolderPath); FileStream fs = new FileStream(AllFolderPath + filename, FileMode.Create); fs.Write(b, 0, b.Length); fs.Close(); overpath = path + filename; return true; } public bool IsReusable { get { return false; } } #endregion } }