/// <summary> /// 保存所有文件 /// </summary> /// <param name="files">文件对象</param> /// <param name="content">内容(如果有的话)</param> /// <param name="explain">阐述(如果有的话)</param> /// <param name="wmPoint">水印位置</param> /// <param name="wmPath">水印文件路径</param> /// <returns>附件列表</returns> public string SaveAs(HttpFileCollection files, ref string content, ref string explain, int wmPoint, string wmPath) { string result = string.Empty; for (int i = 0; i < files.Count; i++) { if (files[i] != null && files[i].ContentLength > 0) { FileInfo tempFileInfo = new FileInfo(files[i].FileName); if (!string.IsNullOrEmpty(tempFileInfo.Extension)) { //保存文件 string saveFolder = "Attach/" + DateTime.Now.ToString("yyyyMM") + "/"; string savePath = saveFolder + DateTime.Now.ToString("ddHHmmss") + "-" + tempFileInfo.Name; if (!Directory.Exists(Path.Combine(SiteCfg.Router, saveFolder))) { Directory.CreateDirectory(Path.Combine(SiteCfg.Router, saveFolder)); } if (wmPoint > 0 && File.Exists(wmPath) && (tempFileInfo.Extension.ToLower() == ".bmp" || tempFileInfo.Extension.ToLower() == ".gif" || tempFileInfo.Extension.ToLower() == ".jpg" || tempFileInfo.Extension.ToLower() == ".png")) { files[i].SaveAs(Path.Combine(SiteCfg.Router, "Common/Temp/" + tempFileInfo.Name)); new SiteWatermark().HandleImage(Path.Combine(SiteCfg.Router, "Common/Temp/" + tempFileInfo.Name), Path.Combine(SiteCfg.Router, savePath), wmPath, wmPoint, true); } else { files[i].SaveAs(Path.Combine(SiteCfg.Router, savePath)); } //创建附件信息 AttachmentItem attVal = new AttachmentItem(); attVal.Name = tempFileInfo.Name; attVal.Path = savePath; attVal.Type = files[i].ContentType; attVal.Size = files[i].ContentLength; int tmpId = new AttachmentData(conn).InsertAttachment(attVal); result += string.Format("{0},", tmpId); //判断文件 string replaceTag = string.Format("[LocalUpload_{0}]", i); string replaceImgHtml = string.Format("<span class=\"sysAttachImage\"><img src=\"{0}\"/></span>", SiteCfg.Path + savePath); string replaceFileHtml = string.Format("<span class=\"sysAttachDownload\"><a href=\"{0}\">{1}</a></span>", SiteCfg.Path + savePath, SiteDat.GetLan("ClickDown")); string replaceMusicHtml = string.Format("<span class=\"sysAttachMusic\"><embed type=\"application/x-shockwave-flash\" classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-4445535400000\" src=\"{0}Common/Editor/player.swf?soundFile={1}&t=swf\" wmode=\"opaque\" quality=\"high\" menu=\"false\" play=\"true\" loop=\"true\" allowfullscreen=\"true\" height=\"26\" width=\"300\" /></span>", SiteCfg.Path, SiteFun.UrlEncode(SiteCfg.Path + savePath)); //格式化内容数据 if (tempFileInfo.Extension.ToUpper() == ".BMP" || tempFileInfo.Extension.ToUpper() == ".GIF" || tempFileInfo.Extension.ToUpper() == ".JPG" || tempFileInfo.Extension.ToUpper() == ".PNG") { if (!string.IsNullOrEmpty(content)) { content = content.Replace(replaceTag, replaceImgHtml); } if (!string.IsNullOrEmpty(explain)) { explain = explain.Replace(replaceTag, replaceImgHtml); } } else if (tempFileInfo.Extension.ToUpper() == ".MP3") { if (!string.IsNullOrEmpty(content)) { content = content.Replace(replaceTag, replaceMusicHtml); } if (!string.IsNullOrEmpty(explain)) { explain = explain.Replace(replaceTag, replaceMusicHtml); } } else { if (!string.IsNullOrEmpty(content)) { content = content.Replace(replaceTag, replaceFileHtml); } if (!string.IsNullOrEmpty(explain)) { explain = explain.Replace(replaceTag, replaceFileHtml); } } } } } if (result.Length > 0) { result = result.Remove(result.Length - 1); } return result; }
/// <summary> /// 获取附件记录 /// </summary> /// <param name="id">附件编号</param> /// <returns>返回附件记录记录数据</returns> public AttachmentItem GetAttachment(int id) { AttachmentItem item = new AttachmentItem(); int rows = 0; using (IDataReader reader = conn.ExecutePager("[Attach]", "[ID], [Name], [Path], [Type], [Size], [Publish]", string.Format("[ID] = {0}", id), null, null, 1, 1, ref rows)) { while (reader.Read()) { item.ID = reader.GetInt32(0); item.Name = reader.GetString(1); item.Path = reader.GetString(2); item.Type = reader.GetString(3); item.Size = reader.GetInt32(4); item.Publish = reader.GetDateTime(5); } } return item; }
/// <summary> /// 添加一个附件记录 /// </summary> /// <param name="value">附件记录数据</param> /// <returns>返回新增的附件记录编号</returns> public int InsertAttachment(AttachmentItem value) { int id = 0; _DbParameter[] pars ={ new _DbParameter().Set("@Name", DbType.String, value.Name), new _DbParameter().Set("@Path", DbType.String, value.Path), new _DbParameter().Set("@Type", DbType.String, value.Type), new _DbParameter().Set("@Size", DbType.Int64, value.Size), new _DbParameter().Set("@Publish", DbType.String, value.Publish.ToString("yyyy-MM-dd HH:mm:ss")) }; conn.ExecuteNonQuery("INSERT INTO [Attach] ([Name], [Path], [Type], [Size], [Publish]) VALUES (@Name, @Path, @Type, @Size, @Publish)", pars); id = Convert.ToInt32(conn.ExecuteNewField("[Attach]", null, null)); return id; }
/// <summary> /// 筛选附件记录 /// </summary> /// <param name="ids">编号列表(例如:0,1,79,80)</param> /// <returns>返回附件记录记录数据列表</returns> public DataList<AttachmentItem> SelectAttachment(string ids) { DataList<AttachmentItem> list = new DataList<AttachmentItem>(); if (!string.IsNullOrEmpty(ids)) { ids = ids.Replace(" ", string.Empty); string[] arrIds = ids.Split(','); if (arrIds.Length > 0) { string trueIds = "0"; foreach (string id in arrIds) { if (Regex.IsMatch(id, @"^\d+$")) { trueIds += string.Format("{0},", id); } } if (trueIds.Length > 1) { trueIds = trueIds.Substring(0, trueIds.Length - 1); } using (IDataReader reader = conn.ExecuteReader(string.Format("SELECT [ID], [Name], [Path], [Type], [Size], [Publish] FROM [Attach] WHERE [ID] IN ({0})", trueIds))) { while (reader.Read()) { AttachmentItem item = new AttachmentItem(); item.ID = reader.GetInt32(0); item.Name = reader.GetString(1); item.Path = reader.GetString(2); item.Type = reader.GetString(3); item.Size = reader.GetInt32(4); item.Publish = reader.GetDateTime(5); list.Add(item); } } } } return list; }
/// <summary> /// 筛选附件记录 /// </summary> /// <param name="intCurPage">当前页码</param> /// <param name="btePerPage">分页大小</param> /// <returns>返回附件记录记录数据列表</returns> public DataList<AttachmentItem> SelectAttachment(int intCurPage, int btePerPage) { DataList<AttachmentItem> list = new DataList<AttachmentItem>(); int rows = 0; using (IDataReader reader = conn.ExecutePager("[Attach]", "[ID], [Name], [Path], [Type], [Size], [Publish]", null, "[ID]", "DESC", intCurPage, btePerPage, ref rows)) { while (reader.Read()) { AttachmentItem item = new AttachmentItem(); item.ID = reader.GetInt32(0); item.Name = reader.GetString(1); item.Path = reader.GetString(2); item.Type = reader.GetString(3); item.Size = reader.GetInt32(4); item.Publish = reader.GetDateTime(5); list.Add(item); } } list.Number = rows; return list; }