NewItem.aspx.cs
上传用户:cha0314
上传日期:2014-03-02
资源大小:12522k
文件大小:10k
源码类别:

C#编程

开发平台:

C#

  1. using System;
  2. using System.Collections;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Data.SqlClient;
  6. using System.Drawing;
  7. using System.Web;
  8. using System.Web.SessionState;
  9. using System.Web.UI;
  10. using System.Web.UI.WebControls;
  11. using System.Web.UI.HtmlControls;
  12. using UDS.Components;
  13. namespace UDS.SubModule.UnitiveDocument.BBS
  14. {
  15. /// <summary>
  16. /// NewItem 的摘要说明。
  17. /// </summary>
  18. public class NewItem : System.Web.UI.Page
  19. {
  20. private  string username;
  21. private  string boardid;
  22. private  bool isboardmaster;
  23. private  bool isadmin;
  24. private  bool isbulletinadmin;
  25. protected System.Web.UI.HtmlControls.HtmlInputText Title;
  26. protected System.Web.UI.HtmlControls.HtmlTextArea Content;
  27. protected System.Web.UI.WebControls.Button btn_UpAtt;
  28. protected System.Web.UI.WebControls.DropDownList ddl_FileType;
  29. protected System.Web.UI.HtmlControls.HtmlInputFile hif;
  30. protected System.Web.UI.WebControls.CheckBox cbx_bulletin;
  31. protected System.Web.UI.WebControls.CheckBox cbx_sysbulletin;
  32. protected System.Web.UI.WebControls.Label lbl_DeskTop;
  33. protected System.Web.UI.WebControls.Button btn_DelAtt;
  34. protected System.Web.UI.WebControls.ListBox lbx_AttList;
  35. protected System.Web.UI.WebControls.CheckBox cbx_DeskTop;
  36. protected System.Web.UI.HtmlControls.HtmlInputButton cmdOK;
  37. private void Page_Load(object sender, System.EventArgs e)
  38. {
  39. if(!Page.IsPostBack)
  40. {
  41. cbx_sysbulletin.Attributes["onclick"] = "sysbulletin_click();";
  42. username = (Request.Cookies["Username"].Value);
  43. boardid  = (Request.QueryString["BoardID"]==null)?"0":Request.QueryString["BoardID"];
  44. UDS.Components.BBSClass bbs = new UDS.Components.BBSClass();
  45. isboardmaster = bbs.IsBoardMaster(Int32.Parse(boardid),username);
  46. cbx_bulletin.Visible = isboardmaster;
  47. //如果是私有板块则不允许发布系统公告
  48. bool privateboard = false;
  49. SqlDataReader dr_board = bbs.GetModifyBBSBoard(Int32.Parse(boardid));
  50. while(dr_board.Read())
  51. {
  52. if(Boolean.Parse(dr_board["board_type"].ToString())==false)
  53. privateboard = true;
  54. }
  55. dr_board.Close();
  56. if(Request.Cookies["UDSBBSAdmin"].Value=="0")
  57. {
  58. isadmin = false;
  59. }
  60. else if(Request.Cookies["UDSBBSAdmin"].Value=="1")
  61. {
  62. isadmin = true;
  63. }
  64. if(Request.Cookies["UDSBBSBulletinAdmin"].Value=="0")
  65. {
  66. isbulletinadmin = false;
  67. }
  68. else if(Request.Cookies["UDSBBSBulletinAdmin"].Value=="1")
  69. {
  70. isbulletinadmin = true;
  71. }
  72. if(isadmin && !privateboard)
  73. {
  74. cbx_sysbulletin.Visible = cbx_DeskTop.Visible = lbl_DeskTop.Visible = true;
  75. }
  76. else if(isbulletinadmin && !privateboard)
  77. {
  78. cbx_sysbulletin.Visible = cbx_DeskTop.Visible = lbl_DeskTop.Visible = true;
  79. }
  80. else
  81. {
  82. cbx_sysbulletin.Visible = cbx_DeskTop.Visible = lbl_DeskTop.Visible = false;
  83. }
  84. ViewState["username"] = username;
  85. ViewState["boardid"] = boardid;
  86. ViewState["isboardmaster"] = isboardmaster;
  87. ViewState["isadmin"] = isadmin;
  88. ViewState["isbulletinadmin"] = isbulletinadmin;
  89. }
  90. else
  91. {
  92. username = ViewState["username"].ToString();
  93. boardid = ViewState["boardid"].ToString();
  94. isboardmaster = Boolean.Parse(ViewState["isboardmaster"].ToString());
  95. isadmin = Boolean.Parse(ViewState["isadmin"].ToString());
  96. isbulletinadmin = Boolean.Parse(ViewState["isbulletinadmin"].ToString());
  97. }
  98. }
  99. #region Web Form Designer generated code
  100. override protected void OnInit(EventArgs e)
  101. {
  102. //
  103. // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
  104. //
  105. InitializeComponent();
  106. base.OnInit(e);
  107. }
  108. /// <summary>
  109. /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  110. /// 此方法的内容。
  111. /// </summary>
  112. private void InitializeComponent()
  113. {    
  114. this.btn_UpAtt.Click += new System.EventHandler(this.btn_UpAtt_Click);
  115. this.btn_DelAtt.Click += new System.EventHandler(this.btn_DelAtt_Click);
  116. this.cmdOK.ServerClick += new System.EventHandler(this.cmdOK_ServerClick);
  117. this.Load += new System.EventHandler(this.Page_Load);
  118. }
  119. #endregion
  120. private void cmdOK_ServerClick(object sender, System.EventArgs e)
  121. {
  122. BBSClass bbs = new BBSClass();
  123. BBSForumItem item = new BBSForumItem();
  124. string itemcontent = ViewState["Content"] + Content.Value;
  125. item.BoardID = Int32.Parse(boardid);
  126. item.Title   = Title.Value.Replace("<","&lt");
  127. item.Title   = item.Title.Replace(">","&gt");
  128. if(item.Title.Trim()=="") item.Title = "无标题";
  129. item.Content = itemcontent.Replace("<","&lt");
  130. item.Content = item.Content.Replace(">","&gt");
  131. item.Sender  = username;
  132. item.IP      = Request.ServerVariables["remote_addr"].ToString();
  133. item.Bulletin = (cbx_bulletin==null)?false:cbx_bulletin.Checked;
  134. item.SysBulletin = (cbx_bulletin==null)?false:cbx_sysbulletin.Checked;
  135. item.DeskTop = (cbx_DeskTop==null)?false:cbx_DeskTop.Checked;
  136. item.ItemID = bbs.SendItem(item);
  137. if(ViewState["filename"]!=null && ViewState["filename"].ToString().Trim()!="")
  138. item.Attach(ViewState["filename"].ToString());
  139. try
  140. {
  141. Response.Write("<script>if(opener!=null) {opener.location.reload();opener.parent.parent.header.location.reload();location.href='Display.aspx?ItemID="+item.ItemID.ToString()+"&BoardID="+item.BoardID.ToString()+"'}</script>");
  142. }
  143. catch(Exception ex)
  144. {
  145. UDS.Components.Error.Log(ex.Message);
  146. Server.Transfer("../../Error.aspx");
  147. }
  148. }
  149. /// <summary>
  150. /// 上载文件
  151. /// </summary>
  152. private string UploadAtt()
  153. {
  154. HtmlForm FrmCompose   = (HtmlForm)this.Page.FindControl("NewItem");
  155. UDS.Components.BBSClass bbs = new UDS.Components.BBSClass();
  156. string FileName = "";
  157. string Extension = "";
  158. string SavedName = "";
  159. string TotalSavedName = "";
  160. try
  161. {
  162. if(System.IO.Directory.Exists(Server.MapPath(".")+"\Attachment"))
  163. {
  164. for (int i=0;i<FrmCompose.Controls.Count;i++)
  165. {
  166. if(FrmCompose.Controls [i].GetType().ToString()=="System.Web.UI.HtmlControls.HtmlInputFile")
  167. {
  168. HtmlInputFile hif = ((HtmlInputFile)(FrmCompose.Controls[i]));
  169. if(hif.PostedFile.FileName.Trim()!="")
  170. {
  171. FileName = System.IO .Path.GetFileName(hif.PostedFile.FileName);
  172. Extension = System.IO.Path.GetExtension(hif.PostedFile.FileName);
  173. SavedName = bbs.InsertFile(FileName,Extension).ToString();
  174. TotalSavedName += SavedName + Extension + ",";
  175. hif.PostedFile.SaveAs(Server.MapPath(".")+"\Attachment\"+SavedName+Extension );
  176. }
  177. hif=null;
  178. }
  179. }
  180. return(TotalSavedName);
  181. }
  182. else
  183. {   
  184. System.IO.Directory.CreateDirectory(Server.MapPath(".")+"\Attachment");
  185. UploadAtt();
  186. return(TotalSavedName);
  187. }
  188. }
  189. catch(Exception ioex)
  190. {
  191. UDS.Components.Error.Log(ioex.ToString());
  192. Server.Transfer("../../../Error.aspx");
  193. return(TotalSavedName);
  194. }
  195. }
  196. private void btn_UpAtt_Click(object sender, System.EventArgs e)
  197. {
  198. string filename = UploadAtt();
  199. ViewState["filename"] += filename; 
  200. string savedpath = Request.Url.AbsoluteUri.Substring(0,Request.Url.AbsoluteUri.LastIndexOf("/")) + "/Attachment/";
  201. string[] arrfilename = filename.Split(',');
  202. string uploadcontent = ViewState["Content"] + Content.Value;
  203. switch(ddl_FileType.SelectedItem.Value)
  204. {
  205. case "picture":
  206. for(int i =0;i<arrfilename.Length;i++)
  207. {
  208. if(arrfilename[i].Trim()!="")
  209. {
  210. uploadcontent += " [IMG]" + savedpath + arrfilename[i] + "[/IMG]";
  211. //添加到附件列表中
  212. lbx_AttList.Items.Add(new ListItem(System.IO.Path.GetFileName(hif.PostedFile.FileName),arrfilename[i]));
  213. }
  214. }
  215. break;
  216. case "rm":
  217. for(int i =0;i<arrfilename.Length;i++)
  218. {
  219. if(arrfilename[i].Trim()!="")
  220. {
  221. uploadcontent += " [RM=320,240]" + savedpath + arrfilename[i] + "[/RM]";
  222. lbx_AttList.Items.Add(new ListItem(System.IO.Path.GetFileName(hif.PostedFile.FileName),arrfilename[i]));
  223. }
  224. }
  225. break;
  226. case "mp3":
  227. case "avi":
  228. for(int i =0;i<arrfilename.Length;i++)
  229. {
  230. if(arrfilename[i].Trim()!="")
  231. {
  232. uploadcontent += " [MP=320,240]" + savedpath + arrfilename[i] + "[/MP]";
  233. lbx_AttList.Items.Add(new ListItem(System.IO.Path.GetFileName(hif.PostedFile.FileName),arrfilename[i]));
  234. }
  235. }
  236. break;
  237. case "swf":
  238. for(int i =0;i<arrfilename.Length;i++)
  239. {
  240. if(arrfilename[i].Trim()!="")
  241. {
  242. uploadcontent += " [FLASH]" + savedpath + arrfilename[i] + "[/FLASH]";
  243. lbx_AttList.Items.Add(new ListItem(System.IO.Path.GetFileName(hif.PostedFile.FileName),arrfilename[i]));
  244. }
  245. }
  246. break;
  247. case "other":
  248. for(int i =0;i<arrfilename.Length;i++)
  249. {
  250. if(arrfilename[i].Trim()!="")
  251. {
  252. uploadcontent += " [ATT]" + savedpath + arrfilename[i] + "[/ATT]";
  253. lbx_AttList.Items.Add(new ListItem(System.IO.Path.GetFileName(hif.PostedFile.FileName),arrfilename[i]));
  254. }
  255. }
  256. break;
  257. }
  258. ViewState["Content"] = uploadcontent; 
  259. }
  260. private void btn_DelAtt_Click(object sender, System.EventArgs e)
  261. {
  262. //得到所选的文件,以数组方式存放
  263. int i = 0;
  264. string[] selectedfiles = new string[lbx_AttList.Items.Count];
  265. foreach(ListItem li in lbx_AttList.Items)
  266. {
  267. if(li.Selected)
  268. {
  269. selectedfiles[i] = li.Value;
  270. }
  271. else
  272. selectedfiles[i] = "null";
  273. i++;
  274. }
  275. //删除附件
  276. for(int j = 0;j<selectedfiles.Length;j++)
  277. {
  278. if(selectedfiles[j]!="null")
  279. System.IO.File.Delete(Server.MapPath(".")+"\Attachment\"+selectedfiles[j]);
  280. }
  281. //删除附件列表中的item
  282. for(int j = 0;j<selectedfiles.Length;j++)
  283. {
  284. if(selectedfiles[j]!="null")
  285. {
  286. foreach(ListItem li in lbx_AttList.Items)
  287. {
  288. if(li.Value==selectedfiles[j])
  289. {
  290. lbx_AttList.Items.Remove(li);
  291. break;
  292. }
  293. }
  294. }
  295. }
  296. }
  297. }
  298. }