ซอร์สโค้ด C# สำหรับการอัพโหลดรูปภาพและสร้างภาพขนาดย่อใน ASP.NET<FONT size=4><FONT size=4><FONT size=4>โดยใช้ระบบ;
ใช้ System.Collections;
โดยใช้ System.ComponentModel;
ใช้ System.Data;
โดยใช้ระบบการวาดภาพ;
ใช้ System.Web;
โดยใช้ System.Web.SessionState;
โดยใช้ System.Web.UI;
ใช้ System.Web.UI.WebControls;
ใช้ System.Web.UI.HtmlControls;
ใช้ System.IO;
ใช้ System. Drawing.Imaging;
เนมสเปซ eMeng.Exam
-
/// <สรุป>
/// คำอธิบายโดยย่อของภาพขนาดย่อ
/// </สรุป>
ภาพขนาดย่อของชั้นเรียนสาธารณะ: System.Web.UI.Page
-
ป้องกัน System.Web.UI.WebControls.Label Label1;
ป้องกัน System.Web.UI.WebControls.Button Button1;
โมฆะส่วนตัว Page_Load (ผู้ส่งวัตถุ System.EventArgs e)
-
//ใส่รหัสผู้ใช้ที่นี่เพื่อเริ่มต้นเพจ
Label1.Text = "<h3>ง่ายต่อการฝึกฝนใน ASP.NET?lt;/h3>";
Button1.Text = "อัปโหลดและแสดงภาพขนาดย่อ";
}
โค้ด #region ที่สร้างโดย Web Form Designer
แทนที่การป้องกันโมฆะ OnInit (EventArgs e)
-
-
// CODEGEN: การเรียกนี้จำเป็นโดยผู้ออกแบบ ASP.NET Web Forms
-
เตรียมใช้งานส่วนประกอบ();
ฐาน OnInit(e);
}
/// <สรุป>
/// Designer รองรับวิธีการที่จำเป็น - อย่าใช้โปรแกรมแก้ไขโค้ดเพื่อแก้ไข
/// เนื้อหาของวิธีนี้
/// </สรุป>
โมฆะส่วนตัว InitializeComponent()
-
this.Button1.Click += System.EventHandler ใหม่ (this.Button1_Click);
this.Load += ใหม่ System.EventHandler(this.Page_Load);
}
#endregion
โมฆะส่วนตัว Button1_Click (ผู้ส่งวัตถุ System.EventArgs e)
-
HttpFileCollection MyFileColl = HttpContext.Current.Request.Files;
HttpPostedFile MyPostedFile = MyFileColl[0];
if (MyPostedFile.ContentType.ToString().ToLower().IndexOf("รูปภาพ") < 0)
-
Response.Write("รูปแบบกราฟิกไม่ถูกต้อง");
กลับ;
-
GetThumbNail(MyPostedFile.FileName, 100, 100,
MyPostedFile.ContentType.ToString(), เท็จ, MyPostedFile.InputStream);
-
ระบบส่วนตัว Drawing.Imaging.ImageFormat GetImageType (วัตถุ strContentType)
-
ถ้า ((strContentType.ToString().ToLower()) == "รูปภาพ/pjpeg")
-
กลับ System. Drawing.Imaging.ImageFormat.Jpeg;
-
อย่างอื่นถ้า ((strContentType.ToString().ToLower()) == "image/gif")
-
กลับ System. Drawing.Imaging.ImageFormat.Gif;
-
อย่างอื่นถ้า ((strContentType.ToString().ToLower()) == "image/bmp")
-
กลับ System. Drawing.Imaging.ImageFormat.Bmp;
-
อย่างอื่นถ้า ((strContentType.ToString().ToLower()) == "image/tiff")
-
กลับ System. Drawing.Imaging.ImageFormat.Tiff;
-
อย่างอื่นถ้า ((strContentType.ToString().ToLower()) == "image/x-icon")
-
กลับ System. Drawing.Imaging.ImageFormat.Icon;
-
อย่างอื่นถ้า ((strContentType.ToString().ToLower()) == "image/x-png")
-
กลับ System. Drawing.Imaging.ImageFormat.Png;
-
อย่างอื่นถ้า ((strContentType.ToString().ToLower()) == "image/x-emf")
-
กลับ System. Drawing.Imaging.ImageFormat.Emf;
-
อย่างอื่นถ้า ((strContentType.ToString().ToLower()) == "image/x-exif")
-
กลับ System. Drawing.Imaging.ImageFormat.Exif;
-
อย่างอื่นถ้า ((strContentType.ToString().ToLower()) == "image/x-wmf")
-
กลับ System. Drawing.Imaging.ImageFormat.Wmf;
-
อื่น
-
กลับ System. Drawing.Imaging.ImageFormat.MemoryBmp;
-
} }
โมฆะส่วนตัว GetThumbNail (สตริง strFileName, int iWidth, int iheight,
สตริง strContentType, บูล blnGetFromFile, System.IO.Stream ImgStream)
-
System. Drawing.Image oImg
ถ้า (blnGetFromFile)
-
oImg = System. Drawing.Image.FromFile (strFileName);
-
อื่น
-
oImg = System. Drawing.Image.FromStream (ImgStream);
-
oImg = oImg.GetThumbnailImage (iWidth, iheight, null, IntPtr.Zero);
สตริง strGuid = System.Guid.NewGuid().ToString().ToUpper();
สตริง strFileExt = strFileName.Substring(strFileName.LastIndexOf("."));
Response.ContentType = strContentType;
MemoryStream MemStream = MemoryStream ใหม่();
oImg.Save(MemStream, GetImageType(strContentType));
MemStream.WriteTo (Response.OutputStream);
}
}
-
</FONT></FONT></FONT><FONT color=#ff0000 size=4></FONT><FONT size=4>ฟังก์ชัน:
1. อัปโหลดไฟล์ภาพ (JPG GIF PNG)
2. บันทึกไปยังเส้นทางที่ระบุ (ตั้งค่าเส้นทางใน web.config และบันทึกไฟล์ในรูปแบบดั้งเดิม)
3. และสร้างความกว้างที่กำหนดโดยอัตโนมัติ (กำหนดความกว้างใน web.config)
4. และรูปแบบที่กำหนด (ระบุรูปแบบภาพขนาดย่อใน web.config)
5. ภาพขนาดย่อที่มีสัดส่วนเดียวกันกับภาพต้นฉบับ (ความสูงของภาพขนาดย่อจะคำนวณตามความกว้าง ความกว้าง และความสูงของภาพต้นฉบับ)
6. สามารถระบุได้ว่ามีไฟล์อยู่แล้วหรือไม่
7. หากไม่ได้แทนที่ จะเกิดข้อผิดพลาด
8. หากเลือกช่องทำเครื่องหมาย "เขียนทับภาพต้นฉบับ" รูปภาพต้นฉบับจะถูกเขียนทับ
9. ตามข้อกำหนด คุณสามารถตั้งค่าอินพุตไฟล์มากกว่าหนึ่งไฟล์และช่องทำเครื่องหมายที่เกี่ยวข้องบนเว็บฟอร์มได้
10. และหลังจากอัพโหลดไฟล์แล้ว ชื่อไฟล์ ขนาด ไบต์ และ
11. ขนาดชื่อไฟล์ของภาพขนาดย่อ
12. รูปแบบชื่อไฟล์ของภาพขนาดย่อ: รูปภาพต้นฉบับ + "_thumb" + รูปแบบที่ระบุ เช่น: test.jpg_thumb.gif เพื่อการจัดการที่ง่ายดาย
-
โมฆะสาธารณะ UploadFile (ผู้ส่งวัตถุ System.EventArgs e)
{
สตริง imgNameOnly, imgNameNoExt, imgExt;
สตริง imgThumbnail;
หมายเลขข้อผิดพลาด int = 0;
System. Drawing.Image oriImg, newImg;
string strFePicSavePath = ConfigurationSettings.AppSettings["FePicSavePath"].ToString();
string strFePicThumbFormat = ConfigurationSettings.AppSettings["FePicThumbFormat"].ToString().ToLower();
int intFeThumbWidth = Int32.Parse (ConfigurationSettings.AppSettings ["FePicThumbWidth"]);
string fileExt;
StringBuilder picInfo = new StringBuilder()
;
-
สำหรับ (int i = 0; i < Request.Files.Count; i ++)
-
HttpPostedFile PostFile = คำขอ ไฟล์ [i];
fileExt = (System.IO.Path.GetExtension(PostedFile.FileName)).ToString().ToLower();
imgNameOnly = System.IO.Path.GetFileName(PstedFile.FileName);
ถ้า (fileExt == ".jpg" || fileExt == ".gif" || fileExt == ".png")
{
if(System.IO.File.Exists(strFePicSavePath + imgNameOnly) && (checkboxlistRewrite.Items[i].Selected == false))
-
ข้อผิดพลาดหมายเลข = ข้อผิดพลาดหมายเลข + 1;
picInfo.Append("<b>ข้อผิดพลาด:</b>File("+ (i+1) +") " + imgNameOnly + " มีอยู่แล้ว โปรดเปลี่ยนชื่อไฟล์<br/>" );
-
-
อื่น
-
ข้อผิดพลาดหมายเลข = ข้อผิดพลาดหมายเลข + 1;
picInfo.Append("<b>ข้อผิดพลาด:</b> file("+ (i+1) +") " + imgNameOnly + " extension" + fileExt + " not allowance<br/>" );
}
}
ถ้า(หมายเลขข้อผิดพลาด > 0)
-
picInfo.Append("<font color=red>การดำเนินการทั้งหมดยังไม่เสร็จสิ้น โปรดแก้ไขข้อผิดพลาดและดำเนินการต่ออีกครั้ง</font><br/>");
-
อื่น
-
สำหรับ (int i = 0; i < Request.Files.Count; i ++)
{
HttpPostedFile PostFile = Request.Files [i];
imgNameOnly = System.IO.Path.GetFileName(PostedFile.FileName);
imgNameNoExt = System.IO.Path.GetFileNameWithoutExtension(PostedFile.FileName);
imgExt = System.IO.Path.GetExtension(PostedFile.FileName).ToString().ToLower();
oriImg = System. Drawing.Image.FromStream (PostedFile.InputStream);
newImg = oriImg.GetThumbnailImage(intFeThumbWidth, intFeThumbWidth * oriImg.Height/oriImg.Width,null,ระบบใหม่ IntPtr(0));
สวิตช์ (imgExt)
-
// กรณี ".jpeg":
กรณี ".jpg":
oriImg.Save(strFePicSavePath + imgNameOnly , System. Drawing.Imaging.ImageFormat.Jpeg);
หยุดพัก;
กรณี ".gif":
oriImg.Save(strFePicSavePath + imgNameOnly , System. Drawing.Imaging.ImageFormat.Gif);
หยุดพัก;
กรณี ".png":
oriImg.Save(strFePicSavePath + imgNameOnly , System. Drawing.Imaging.ImageFormat.Png);
หยุดพัก;
}
//oriImg.Save(ConfigurationSettings.AppSettings["FePicSavePath"] + imgNameNoExt + ".jpg", System. Drawing.Imaging.ImageFormat.Jpeg);
สวิตช์ (strFePicThumbFormat)
-
//รูปแบบ jpeg จะทำให้ไฟล์มีขนาดเล็กที่สุด และ PNG จะเป็นขนาดที่ใหญ่ที่สุด
// กรณี "jpeg":
กรณี "jpg":
newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.jpg",System. Drawing.Imaging.ImageFormat.Jpeg);
imgThumbnail = imgNameOnly + "_thumb.jpg";
หยุดพัก;
กรณี "gif":
newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.gif",System. Drawing.Imaging.ImageFormat.Gif);
imgThumbnail = imgNameOnly + "_thumb.gif";
หยุดพัก;
กรณี "png":
newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.png",System. Drawing.Imaging.ImageFormat.Png);
imgThumbnail = imgNameOnly + "_thumb.png";
หยุดพัก;
ค่าเริ่มต้น:
newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.jpg",System. Drawing.Imaging.ImageFormat.Jpeg);
imgThumbnail = imgNameOnly + "_thumb.jpg";
break;
}//switch
picInfo.Append("<b>ชื่อไฟล์:</b>" + imgNameOnly + " ( " + oriImg.Width + " x " + oriImg.Height + " ) " + PostedFile.ContentLength/1024 + "KB<br/>");
picInfo.Append("<b>ชื่อภาพขนาดย่อ:</b>" + imgภาพขนาดย่อ + " ( " + newImg.Width + " x " + newImg.Height + " )<br/><br/>")
; กำจัด();
newImg.Dispose();
}//สำหรับ
picInfo.Append("<font color=red>การดำเนินการทั้งหมดสำเร็จ</font><br/>");
}// ถ้าข้อผิดพลาด = 0
-
อื่น
-
picInfo.Append("<font color=red>มีข้อผิดพลาด โปรดตรวจสอบ การดำเนินการไม่สำเร็จ</font><br/>");
}
lblPicInfo.Text = picInfo.ToString(
}
</FONT>