/BaliEnterpriseSystems/BaliEnterpriseSystems/UploadPhoto.aspx.cs

https://github.com/sirivedula/BEST · C# · 134 lines · 119 code · 14 blank · 1 comment · 9 complexity · dd5b0d108496148b7903e82b26709de8 MD5 · raw file

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.UI;
  6. using System.Web.UI.WebControls;
  7. using System.Drawing;
  8. using BaliEnterpriseSystems.BestObjects;
  9. using System.Data.OleDb;
  10. namespace BaliEnterpriseSystems
  11. {
  12. public partial class UploadPhoto : System.Web.UI.Page
  13. {
  14. private static System.Drawing.Image resizeImage(System.Drawing.Image imgToResize, Size size)
  15. {
  16. int sourceWidth = imgToResize.Width;
  17. int sourceHeight = imgToResize.Height;
  18. float nPercent = 0;
  19. float nPercentW = 0;
  20. float nPercentH = 0;
  21. nPercentW = ((float)size.Width / (float)sourceWidth);
  22. nPercentH = ((float)size.Height / (float)sourceHeight);
  23. if (nPercentH < nPercentW)
  24. nPercent = nPercentH;
  25. else
  26. nPercent = nPercentW;
  27. int destWidth = (int)(sourceWidth * nPercent);
  28. int destHeight = (int)(sourceHeight * nPercent);
  29. Bitmap b = new Bitmap(destWidth, destHeight);
  30. Graphics g = Graphics.FromImage((System.Drawing.Image)b);
  31. g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
  32. g.DrawImage(imgToResize, 0, 0, destWidth, destHeight);
  33. g.Dispose();
  34. return (System.Drawing.Image)b;
  35. }
  36. public byte[] imageToByteArray(System.Drawing.Image imageIn)
  37. {
  38. var ms = new System.IO.MemoryStream();
  39. imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
  40. return ms.ToArray();
  41. }
  42. protected void Page_LoadComplete(object sender, EventArgs e)
  43. {
  44. if (HttpContext.Current.Session["CurrentUser"] == null)
  45. {
  46. Response.Redirect("Logout.aspx");
  47. }
  48. BestField sid = new BestField() { fieldName = "studentid", fieldSize = 50, fieldType = "System.String", paramOledbType = System.Data.OleDb.OleDbType.VarChar };
  49. sid.fieldValue = Request.QueryString["sid"];
  50. BestField cid = new BestField() { fieldName = "centerid", fieldSize = 50, fieldType = "System.String", paramOledbType = System.Data.OleDb.OleDbType.VarChar };
  51. cid.fieldValue = Request.QueryString["cid"];
  52. BestStudentPicture studPic = new BestStudentPicture();
  53. List<BestField> bparams = new List<BestField>();
  54. bparams.Add(sid);
  55. bparams.Add(cid);
  56. studPic.LoadRows("studentid = ? and centerid = ?", bparams);
  57. object stdname = studPic.CurrentRow.Fields["studentGuid"].displayFormatFunc.Invoke(studPic.CurrentRow);
  58. ltrStdName.Text = stdname.ToString();
  59. if (!String.IsNullOrEmpty(Request.Form["uploadPhoto"]))
  60. {
  61. if (Request.Files.Count > 0)
  62. {
  63. HttpPostedFile File = Request.Files[0];
  64. if (File.ContentLength > 0)
  65. {
  66. string resizeTo = Request.Form["resizePhoto"];
  67. int MaxDimension = 120;
  68. int.TryParse(resizeTo, out MaxDimension);
  69. MaxDimension = Math.Min(120, MaxDimension);
  70. Size maxSize = new Size(MaxDimension, MaxDimension);
  71. System.Drawing.Image myImage = System.Drawing.Image.FromStream(File.InputStream, false);
  72. if (myImage.Height > maxSize.Height || myImage.Width > maxSize.Width)
  73. {
  74. //resize image
  75. var hOver = Convert.ToDouble(myImage.Height) / Convert.ToDouble(maxSize.Height);
  76. var wOver = Convert.ToDouble(myImage.Width) / Convert.ToDouble(maxSize.Width);
  77. double pOver = Math.Max(hOver, wOver);
  78. maxSize.Height = Convert.ToInt32(myImage.Height / pOver);
  79. maxSize.Width = Convert.ToInt32(myImage.Width / pOver);
  80. myImage = resizeImage(myImage, maxSize);
  81. }
  82. var imgByte = imageToByteArray(myImage); //new Byte[File.ContentLength];
  83. File.InputStream.Read(imgByte, 0, imgByte.Length);
  84. OleDbCommand myCmd = studPic.dbCmd;
  85. if (studPic.CurrentRow.IsNew)
  86. {
  87. myCmd.CommandText = "insert into BestStudentPicture (picture, photosize, photoname, studentid, centerid) values (?,?,?,?,?)";
  88. }
  89. else
  90. {
  91. myCmd.CommandText = "update BestStudentPicture set picture = ?, photosize = ?, photoname = ? where studentid=? and centerid=?";
  92. }
  93. object tvalue = imgByte;
  94. OleDbParameter p1 = new OleDbParameter("picture", OleDbType.LongVarBinary, -1, System.Data.ParameterDirection.Input, false, 0, 0, null, System.Data.DataRowVersion.Current, tvalue);
  95. OleDbParameter p2 = new OleDbParameter("photosize", OleDbType.VarChar, 12);
  96. p2.Value = File.ContentLength;
  97. OleDbParameter p3 = new OleDbParameter("photoname", OleDbType.VarChar, 200);
  98. p3.Value = File.FileName;
  99. myCmd.Parameters.Clear();
  100. myCmd.Parameters.Add(p1);
  101. myCmd.Parameters.Add(p2);
  102. myCmd.Parameters.Add(p3);
  103. myCmd.Parameters.Add(sid.Param);
  104. myCmd.Parameters.Add(cid.Param);
  105. try
  106. {
  107. myCmd.ExecuteNonQuery();
  108. }
  109. catch (Exception ex)
  110. {
  111. this.errorDisplay.Text = "<div class=\"err\">There was an error saving the photo.<br />" + HttpUtility.HtmlEncode(ex.Message) + "</div>";
  112. }
  113. }
  114. }
  115. }
  116. this.defaultResizeOptionScript.Text = "<script type=\"text/javascript\">\nvar defaultSize = '90'; \n</script>";
  117. this.photoDisplay.Text = "<img id=\"empPhoto\" alt=\"Employee Photo\" src=\"getPhoto.aspx?sid=" + Server.UrlEncode(sid.fieldValue) + "&cid=" + Server.UrlEncode(cid.fieldValue) + "\" />";
  118. }
  119. }
  120. }