using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; namespace yaf.pages { public partial class UploadImage : ForumPage { private DataRow forum, topic; protected void Page_Load(object sender, System.EventArgs e) { using (DataTable dt = DB.forum_list(PageBoardID, PageForumID)) forum = dt.Rows[0]; topic = DB.topic_info(PageTopicID); if (!IsPostBack) { if (!ForumModeratorAccess && !ForumUploadAccess) Data.AccessDenied(); if (!ForumReadAccess) Data.AccessDenied(); if (((int)forum["Flags"] & (int)ForumFlags.Locked) == (int)ForumFlags.Locked) Data.AccessDenied(/*"The forum is closed."*/); Upload.Text = "Upload";//GetText("UPLOAD"); } } private void Back_Click(object sender, System.EventArgs e) { Forum.Redirect(Pages.posts, "m={0}#{0}", Request.QueryString["m"]); } private void CheckValidFile(HtmlInputFile file) { if (file.PostedFile == null || file.PostedFile.FileName.Trim().Length == 0 || file.PostedFile.ContentLength == 0) return; string filename = file.PostedFile.FileName; int pos = filename.LastIndexOfAny(new char[] { '/', '\\' }); if (pos >= 0) filename = filename.Substring(pos + 1); pos = filename.LastIndexOf('.'); if (pos >= 0) { switch (filename.Substring(pos + 1).ToLower()) { case "jpg": break; case "jpeg": break; case "gif": break; case "bmp": break; default: throw new Exception(String.Format(GetText("uploadimage","fileerror"), filename)); } } } private void SaveAttachment(HtmlInputFile file) { if (file.PostedFile == null || file.PostedFile.FileName.Trim().Length == 0 || file.PostedFile.ContentLength == 0) return; string sUpDir = Request.MapPath(Config.UploadDir); string filename = file.PostedFile.FileName; int pos = filename.LastIndexOfAny(new char[] { '/', '\\' }); if (pos >= 0) filename = filename.Substring(pos + 1); // verify the size of the attachment if (BoardSettings.MaxFileSize > 0 && file.PostedFile.ContentLength > BoardSettings.MaxFileSize) throw new Exception(GetText("ERROR_TOOBIG")); Random RandomClass = new Random(); int prefix; prefix = RandomClass.Next(); file.PostedFile.SaveAs(String.Format("{0}{1}_{2}", sUpDir, prefix, filename)); litJavascript.Text = ""; } protected void Upload_Click1(object sender, EventArgs e) { try { CheckValidFile(File); SaveAttachment(File); } catch (Exception x) { DB.eventlog_create(PageUserID, this, x); AddLoadMessage(x.Message); return; } } } }