using framework_business; using framework_library; using System; using System.Collections.Generic; using System.Drawing; using System.IO; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class controls_admin_imageUpload : System.Web.UI.UserControl { protected void Page_Load(object sender, EventArgs e) { } protected void btnUpload_Click(object sender, EventArgs e) { if (utils.verifySession("surfaceImageItemId")) { string surfaceItemId = Session["surfaceImageItemId"].ToString(); // Upload Original Image Here string uploadFileName = "", uploadFilePath = "", saveFileName = "", destDir = ""; if (fileUpload.HasFile) { string ext = Path.GetExtension(fileUpload.FileName).ToLower(); if (ext == ".jpg" || ext == ".jpeg" || ext == ".gif" || ext == ".png") { uploadFileName = fileUpload.FileName; destDir = Server.MapPath("~/upload/surface/" + surfaceItemId.ToString() + "/"); uploadFilePath = Path.Combine(destDir, uploadFileName); saveFileName = Guid.NewGuid().ToString() + ext; try { utils.validateFolder(destDir); fileUpload.SaveAs(uploadFilePath); utils.ResizeImage(uploadFilePath, destDir, saveFileName, 500, true, false); imgUpload.ImageUrl = "~/upload/surface/" + surfaceItemId.ToString() + "/" + saveFileName; panCrop.Visible = true; panChoose.Visible = false; } catch (Exception ex) { lblMsg.Text = "Error! Please try again."; } } else lblMsg.Text = "Selected file type not allowed!"; } else lblMsg.Text = "Please select file first!"; ScriptManager.RegisterStartupScript(this, this.GetType(), "setupJcrop", "$('#modImageUpload').modal();}", true); } } protected void btnCrop_Click(object sender, EventArgs e) { if (utils.verifySession("surfaceImageItemId")) { string surfaceItemId = Session["surfaceImageItemId"].ToString(); string fileName = Path.GetFileName(imgUpload.ImageUrl); string filePath = Path.Combine(Server.MapPath("~/upload/surface/" + surfaceItemId.ToString() + "/"), fileName); string cropFileName = "", cropFilePath = "", cropFolder = ""; if (File.Exists(filePath)) { System.Drawing.Image orgImg = System.Drawing.Image.FromFile(filePath); int bitmapW; int bitmapH; Rectangle CropArea = new Rectangle( Convert.ToInt32(X.Value == "" ? "0" : X.Value), Convert.ToInt32(Y.Value == "" ? "0" : Y.Value), Convert.ToInt32(W.Value == "" ? orgImg.Width.ToString() : W.Value), Convert.ToInt32(H.Value == "" ? orgImg.Height.ToString() : H.Value)); bitmapW = Convert.ToInt32(CropArea.Width); bitmapH = Convert.ToInt32(CropArea.Height); try { Bitmap bitMap = new Bitmap(bitmapW, bitmapH); using (Graphics g = Graphics.FromImage(bitMap)) { g.DrawImage(orgImg, new Rectangle(0, 0, bitMap.Width, bitMap.Height), CropArea, GraphicsUnit.Pixel); } cropFileName = surfaceItemId + "_" + fileName; cropFolder = Server.MapPath("~/upload/surface/" + surfaceItemId.ToString() + "/"); if (!Directory.Exists(cropFolder)) Directory.CreateDirectory(cropFolder); cropFilePath = Path.Combine(cropFolder, cropFileName); bitMap.Save(cropFilePath); orgImg.Dispose(); File.Delete(filePath); panCrop.Visible = false; panChoose.Visible = true; SaveProfilePic(cropFileName); } catch (Exception) { throw; } } } } private void SaveProfilePic(string cropFileName) { if (utils.verifySession("surfaceImageItemId") && utils.verifySession("surfaceImageFieldId")) { string surfaceItemId = Session["surfaceImageItemId"].ToString(); string surfaceFieldId = Session["surfaceImageFieldId"].ToString(); oSurfaceFieldData sfData = new oSurfaceFieldData(); foreach (oSurfaceFieldData data in xData.GetTypedByCriteriaSpecific("recId", typeof(oSurfaceFieldData), "surfaceItemId,surfaceFieldId", surfaceItemId + "," + surfaceFieldId)) { sfData = data; } sfData.surfaceFieldValueChar = cropFileName; if (sfData.recId > 0) xData.UpdateTyped("recId", sfData.recId.ToString(), typeof(oSurfaceFieldData), sfData); else { sfData.surfaceFieldID = Convert.ToInt32(surfaceFieldId); sfData.surfaceItemId = Convert.ToInt32(surfaceItemId); foreach (oSurfaceItem item in xData.GetTypedByCriteriaSpecific("recId", typeof(oSurfaceItem), "recId", surfaceItemId)) { sfData.surfaceId = item.surfaceId; } xData.SaveTyped("recId", typeof(oSurfaceFieldData), sfData); } } } }