using Ninject; using System; using System.Configuration; using System.IO; using System.Web; using WX.CRM.Common; using WX.CRM.IBLL.Wx; using WX.CRM.Model.Entity; using WX.CRM.Model.Enum; using WX.CRM.WebHelper.Infrastructure; namespace WxService { /// /// WxDbUpload 的摘要说明 /// public class WxDbUpload : IHttpHandler { private IWX_DBUPLOADLOG dbpubliclog = NinjectControllerFactory.ninjectKernel.Get(); private IWX_RCONTACT rcontact = NinjectControllerFactory.ninjectKernel.Get(); public void ProcessRequest(HttpContext context) { string username = string.Empty; try { context.Response.ContentType = "text/html"; //LogHelper.Info(string.Format("username:{0},password:{1},copytime:{2},createtime:{3},qunfaclientid{4}", username, password, copytime, createtime, qunfaclientid)); #region 上传文件 var yearMonth = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString(); var uploadFolder = (ConfigurationManager.AppSettings["dbuploadfile"] ?? "dbuploadfile") + "/" + yearMonth; //Stream sourceStream = request.FileData; FileStream targetStream = null; if (!Directory.Exists(uploadFolder)) { Directory.CreateDirectory(uploadFolder); } username = context.Request.Params["username"]; if (string.IsNullOrEmpty(username)) throw new Exception("username不能为空!"); string password = context.Request.Params["password"]; string copytime = context.Request.Params["copytime"]; string createtime = context.Request.Params["createtime"]; string qunfaclientid = context.Request.Params["qunfaclientid"]; HttpPostedFile file = context.Request.Files[0]; string timejiewei = DateTime.Now.ToString("yyMMddhhmmss"); string fileName = string.Format("{0}-{1}-{2}.db", username, password, timejiewei); string filePath = Path.Combine(uploadFolder, fileName); //LogHelper.Info(string.Format("filePath:{0}", filePath)); file.SaveAs(filePath); WX_DBUPLOADLOG model = new WX_DBUPLOADLOG(); //LogHelper.Info("成功否!"); if (!string.IsNullOrEmpty(copytime)) { try { model.COPYTIME = DateTimeTool.GetTimeFromLinuxTime(Convert.ToInt64(copytime)); } catch (Exception ex) { LogHelper.Error(ex.ToString()); } } model.USERNAME = username; model.PASSWORD = password; model.DBFILE = filePath; long createTimeL = 0; if (!string.IsNullOrEmpty(copytime)) { createTimeL = Convert.ToInt64(createtime); } DateTime createTimeT = DateTimeTool.GetTimeFromLinuxTime(createTimeL); bool resu = rcontact.WxDbUploadLog(model, createTimeL, createTimeT, qunfaclientid); #endregion //HttpContext.Current.Response.Clear(); if (resu) HttpContext.Current.Response.Write(Utility.ObjectToJson(new { result = true, retcode = (int)EnumInterfaceErrcode.调用成功, retmsg = "接收成功" })); else HttpContext.Current.Response.Write(Utility.ObjectToJson(new { result = false, retcode = (int)EnumInterfaceErrcode.调用成功但有错误, retmsg = "新增数据失败" })); } catch (Exception ex) { LogHelper.Error("username:" + username + ";db错误:" + ex.ToString()); //HttpContext.Current.Response.Clear(); HttpContext.Current.Response.Write(Utility.ObjectToJson(new { result = false, retcode = (int)EnumInterfaceErrcode.调用成功但有错误, retmsg = "接收失败:" + ex.Message })); } } public bool IsReusable { get { return false; } } } }