/// <summary>读取数据</summary> public override void LoadData() { int id = ConvertHelper.Cint0(hidId.Text); if (id != 0) { //获取指定ID的广告位置内容 var model = AdvertisingPositionBll.GetInstence().GetModelForCache(x => x.Id == id); if (model == null) { return; } //地址名称 txtName.Text = model.Name; //给下拉列表赋值 ddlParentId.SelectedValue = model.ParentId + ""; //编辑时不能修改父节点 ddlParentId.Enabled = false; //设置父ID txtParent.Text = model.ParentId + ""; //设置排序 txtSort.Text = model.Sort + ""; //KEY txtKey.Text = model.Keyword; //给页面图片赋值 if (model.MapImg != null && model.MapImg.Length > 5) { imgMap.ImageUrl = DirFileHelper.GetFilePathPostfix(model.MapImg, "s"); } else { //不存在图片,则隐藏图片控件和图片删除按钮 imgMap.Visible = false; ButtonDelMapImg.Visible = false; } //给页面图片赋值 if (model.PicImg != null && model.PicImg.Length > 5) { imgPic.ImageUrl = DirFileHelper.GetFilePathPostfix(model.PicImg, "s"); } else { //不存在图片,则隐藏图片控件和图片删除按钮 imgPic.Visible = false; ButtonDelPicImg.Visible = false; } //是否显示(状态) rblIsDisplay.SelectedValue = model.IsDisplay + ""; } else { //新建广告位置时,隐藏图片控件和图片删除按钮 imgMap.Visible = false; imgPic.Visible = false; ButtonDelMapImg.Visible = false; ButtonDelPicImg.Visible = false; } }
/// <summary>根据UploadConfig的单一缩放</summary> /// <param name="picImg">图片地址(没有任何扩展后缀,比如后台没有:"b","m","s","b")</param> /// <param name="mC">根据vid查得的 UploadConfig配置</param> public static void OneMakeThumbImage(string picImg, UploadConfig mC) { string bigImg = DirFileHelper.GetFilePathPostfix(picImg, "b"); string midImg = DirFileHelper.GetFilePathPostfix(picImg, "m"); string minImg = DirFileHelper.GetFilePathPostfix(picImg, "s"); string hotImg = DirFileHelper.GetFilePathPostfix(picImg, "h"); string orgImg = DirFileHelper.GetFilePathPostfix(picImg, "o"); //-------------------------------------------------- //big DirFileHelper.DeleteFile(bigImg); if (mC.IsBigPic == 1) { if (mC.BigWidth > 0 && mC.BigHeight > 0) { Uploader.MakeThumbImage(orgImg, bigImg, ConvertHelper.Cint0(mC.BigWidth), ConvertHelper.Cint0(mC.BigHeight), ConvertHelper.Cint0(mC.BigQuality), ConvertHelper.Cint0(mC.CutType)); } else//因为不限制宽高,所以直接复制出来就行了 { DirFileHelper.CopyFile(orgImg, bigImg); } //添加水印 if (mC.IsWaterPic == 1) { Uploader.MakeWaterPic(bigImg); } } //-------------------------------------------------- //mid DirFileHelper.DeleteFile(midImg); if (mC.IsMidPic == 1) { if (mC.MidWidth > 0 && mC.MidHeight > 0) { Uploader.MakeThumbImage(orgImg, midImg, ConvertHelper.Cint0(mC.MidWidth), ConvertHelper.Cint0(mC.MidHeight), ConvertHelper.Cint0(mC.MidQuality), ConvertHelper.Cint0(mC.CutType)); } else//因为不限制宽高,所以直接复制出来就行了 { DirFileHelper.CopyFile(orgImg, midImg); } //添加水印 if (mC.IsWaterPic == 1) { Uploader.MakeWaterPic(midImg); } } //-------------------------------------------------- //hot DirFileHelper.DeleteFile(hotImg); if (mC.IsHotPic == 1) { if (mC.HotWidth > 0 && mC.HotHeight > 0) { Uploader.MakeThumbImage(orgImg, hotImg, ConvertHelper.Cint0(mC.HotWidth), ConvertHelper.Cint0(mC.HotHeight), ConvertHelper.Cint0(mC.HotQuality), ConvertHelper.Cint0(mC.CutType)); } else//因为不限制宽高,所以直接复制出来就行了 { DirFileHelper.CopyFile(orgImg, hotImg); } //添加水印 if (mC.IsWaterPic == 1) { Uploader.MakeWaterPic(hotImg); } } //-------------------------------------------------- //min DirFileHelper.DeleteFile(minImg); if (mC.IsMinPic == 1) { if (mC.IsMinPic > 0 && mC.MinHeight > 0) { Uploader.MakeThumbImage(orgImg, minImg, ConvertHelper.Cint0(mC.MinWidth), ConvertHelper.Cint0(mC.MinHeight), ConvertHelper.Cint0(mC.MinQuality), ConvertHelper.Cint0(mC.CutType)); } else//因为不限制宽高,所以直接复制出来就行了 { DirFileHelper.CopyFile(orgImg, minImg); } //微型图不用加水印 } //-------------------------------------------------- //pic DirFileHelper.DeleteFile(picImg); if (mC.IsFixPic == 1) { if (mC.PicWidth > 0 && mC.PicHeight > 0) { Uploader.MakeThumbImage(orgImg, picImg, ConvertHelper.Cint0(mC.PicWidth), ConvertHelper.Cint0(mC.PicHeight), ConvertHelper.Cint0(mC.PicQuality), ConvertHelper.Cint0(mC.CutType)); } else//因为不限制宽高,所以直接复制出来就行了 { DirFileHelper.CopyFile(orgImg, picImg); } //添加水印 if (mC.IsWaterPic == 1) { Uploader.MakeWaterPic(picImg); } } }
/// <summary>生成一条配置记录的图片</summary> /// <param name="vid"></param> /// <returns></returns> public string fix_PicSize(int vid) { //--------------------------------------------------- UploadConfig mC = new UploadConfig(x => x.Id == vid); if (mC.Id != vid) { return("缺少参数:Id!"); } StringBuilder sb = new StringBuilder(); //只修改关联的图片 //string sql = "select Path from UploadFile where Id=" + vid + " and JoinId>0 order by Id"; //修改全部图片(包含非关联) //string sql = "select Path from UploadFile where UploadConfig_Id=" + vid + " order by Id"; //定义要查询出来的列 var list = new List <string>(); list.Add(UploadFileTable.Path); //定义查询条件 var wheres = new List <ConditionHelper.SqlqueryCondition>(); wheres.Add(new ConditionHelper.SqlqueryCondition(ConstraintType.And, UploadFileTable.UploadConfig_Id, Comparison.Equals, vid)); //定义排序 var sort = new List <string>(); sort.Add(UploadFileTable.Id); string[] rs1 = DataTableHelper.GetArrayString(GetDataTable(false, 0, list, 0, 0, wheres, sort), UploadFileTable.Path); if (rs1 != null && rs1.Length > 0) { int ti = rs1.Length; for (int i = 0; i < ti; i++) { string picImg = rs1[i]; string sExt = DirFileHelper.GetFileExtension(picImg).ToLower(); if (picImg.Length > 4 && (sExt == "jpg" || sExt == "png" || sExt == "gif")) { string orgImg = DirFileHelper.GetFilePathPostfix(picImg, "o"); if (!DirFileHelper.IsExistFile(orgImg)) { DirFileHelper.CopyFile(picImg, orgImg); } //原始图存在的情况下,才能生成其它size if (DirFileHelper.IsExistFile(orgImg)) { OneMakeThumbImage(picImg, mC); } else { sb.AppendFormat("原始文件不存在={0}<br />", picImg); } } } } return(sb.ToString()); }
/// <returns>上传成功返回"",并填充 Model.UploadFile</returns> /// <param name="vid">上传配置模块id,即UploadConfig_Id</param> /// <param name="key">随机key</param> /// <param name="userId">上传者id</param> /// <param name="userName">上传者UserName</param> /// <param name="remotePicUrl">远程图片的url地址</param> /// <param name="m_r">Model.UploadFile</param> /// <returns>上传成功返回"",并填充 Model.UploadFile</returns> public string Upload_RemotePic(int vid, string key, int userId, string userName, string remotePicUrl, UploadFile m_r) { #region 检查参数 //--------------------------------------------------- if (vid < 1 || key.Length < 10) { return("缺少参数:key或sid"); } //--------------------------------------------------- #region 检查登陆 m_r.UserId = userId; m_r.UserName = userName; if (m_r.UserId == 0) { return("您的权限不足!"); } #endregion //--------------------------------------------------- UploadConfig mC = Read_UploadConfig(vid); if (mC.Id != vid) { return("缺少参数:UploadConfig_Id!"); } if (mC.IsPost != 1) { return("系统暂时禁止上传文件2!"); } if (mC.IsEditor != 1) { return("非编辑器类别!"); } mC.UploadType_TypeKey = "image"; #endregion //---------------------------------------------- #region 生成暂时目录 string sCfgSavePath = new Uploader().SavePath; string sSavePath = DirFileHelper.FixDirPath(sCfgSavePath + mC.SaveDir) + DateTime.Now.ToString("yyMM") + "/"; if (!DirFileHelper.CheckSaveDir(sSavePath)) { return("SavePath设置不当:" + sSavePath + ", 或权限不足!"); } string sServerDir = sCfgSavePath + "remote/"; if (!DirFileHelper.CheckSaveDir(sServerDir)) { return("ServerDir设置不当:" + sServerDir + ", 或权限不足!"); } //---------------------------------------------- string sSrcName = StringHelper.Left(DirFileHelper.GetFileName(remotePicUrl), 90); string sFileExt = DirFileHelper.GetFileExtension(sSrcName); //因部部分网站不是标准的jpg、gif扩展名,所以修改下面代码 if (sFileExt.Length > 0) { string sAllowed = ",jpg,gif,png,bmp,"; string sExt = "," + sFileExt.ToLower() + ","; if (sAllowed.IndexOf(sExt) == -1) { sFileExt = "jpg"; } } else { sFileExt = "jpg"; } //---------------------------------------------- string sNewFile = DirFileHelper.GetRndFileName("." + sFileExt); if (sServerDir.IndexOf(":") < 0) { sServerDir = DirFileHelper.FixDirPath(DirFileHelper.GetMapPath(sServerDir)); } string sNewRoot = System.IO.Path.Combine(sServerDir, sNewFile); #endregion //---------------------------------------------- #region 到暂时目录 try { var wc = new System.Net.WebClient(); wc.DownloadFile(remotePicUrl, sNewRoot); } catch (Exception ex) { //throw ex; return(ex.Message.ToLower()); } if (!DirFileHelper.IsExistFile(sNewRoot)) { return("上传失败"); } #endregion //---------------------------------------------- #region 判断是否真实图片格式,并取得图片宽高 int ww = 0, hh = 0; if (!Uploader.Get_Pic_WW_HH(sNewRoot, out ww, out hh)) { DirFileHelper.DeleteFile(sNewRoot); return("非法格式!不是图片文件。"); } int iMaxSize = mC.PicSize; long iFileSize = DirFileHelper.GetFileSize(sNewRoot); /* * if (iFileSize > iMaxSize) * { * return "上传文件大小超过了限制.最多上传(" + DirFileHelper.FmtFileSize2(iMaxSize) + ")."; * } */ #endregion #region 把上传的暂时文件复制到相关模块目录中 string sNewPath = sSavePath + sNewFile; string orgImg = DirFileHelper.GetFilePathPostfix(sNewPath, "o"); //复制到原始图 DirFileHelper.CopyFile(sNewRoot, orgImg); //删除暂时上传的图片 DirFileHelper.DeleteFile(sNewRoot); //生成相关缩略图 OneMakeThumbImage(sNewPath, mC); #endregion //---------------------------------------------- #region 保存入数据库 m_r.UploadConfig_Id = mC.Id; m_r.JoinName = mC.JoinName; m_r.JoinId = 0; m_r.UserType = mC.UserType; m_r.UserIp = IpHelper.GetUserIp(); m_r.AddDate = DateTime.Now; m_r.InfoText = ""; m_r.RndKey = key; m_r.Name = sNewFile; m_r.Path = sNewPath; m_r.Src = sSrcName; m_r.Ext = sFileExt; m_r.Size = ConvertHelper.Cint0(iFileSize); m_r.PicWidth = ww; m_r.PicHeight = hh; //保存入数据库 Add_UploadFile(m_r); #endregion //------------------------------------ //上传成功,输出结果 return(""); }