كود مصدر C# لتحميل الصور وإنشاء الصور المصغرة في ASP.NET<FONT size=4><FONT size=4><FONT size=4>باستخدام System;
باستخدام System.Collections؛
باستخدام System.ComponentModel؛
باستخدام System.Data؛
باستخدام System.Drawing؛
باستخدام 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 = "تحميل وعرض الصور المصغرة"
}
# رمز المنطقة الذي تم إنشاؤه بواسطة مصمم نماذج الويب
تجاوز OnInit المحمي باطلة (EventArgs e)
{
//
// CODEGEN: هذا الاستدعاء مطلوب من قبل مصمم نماذج ويب ASP.NET.
//
InitializeComponent();
base.OnInit(e);
}
/// <الملخص>
/// يدعم المصمم الطرق المطلوبة - لا تستخدم محرر التعليمات البرمجية للتعديل
/// محتوى هذه الطريقة.
/// </الملخص>
الفراغ الخاص ()InitializeComponent
{
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load })
;
#endregion
الخاص void Button1_Click(object sender, System.EventArgs e)
{
HttpFileCollection MyFileColl = HttpContext.Current.Request.Files;
HttpPostedFile MyPostedFile = MyFileColl[0];
if (MyPostedFile.ContentType.ToString().ToLower().IndexOf("image") < 0)
{
Response.Write("تنسيق الرسم غير صالح.");
يعود؛
}
GetThumbNail(MyPostedFile.FileName, 100, 100,
MyPostedFile.ContentType.ToString(), false, MyPostedFile.InputStream);
}
خاص System.Drawing.Imaging.ImageFormat GetImageType (كائن strContentType)
{
إذا ((strContentType.ToString().ToLower()) == "image/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")
{
return 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;
}
آخر
{
return System.Drawing.Imaging.ImageFormat.MemoryBmp;
}
}
GetThumbNail (string strFileName، int iWidth، int iheight،
سلسلة strContentType، bool blnGetFromFile، System.IO.Stream ImgStream)
{
System.Drawing.Image oImg
;
{
oImg = System.Drawing.Image.FromFile(strFileName);
}
آخر
{
oImg = System.Drawing.Image.FromStream(ImgStream);
}
oImg = oImg.GetThumbnailImage(iWidth, iheight, null, IntPtr.Zero);
string strGuid = System.Guid.NewGuid().ToString().ToUpper();
string strFileExt = strFileName.Substring(strFileName.LastIndexOf("."));
Response.ContentType = strContentType;
MemoryStream MemStream = new 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()
;
{
for(int i = 0;i < Request.Files.Count; i++)
{
HttpPostedFile PostFile = Request.Files[i];
fileExt = (System.IO.Path.GetExtension(PostedFile.FileName)).ToString().ToLower()
imgNameOnly = System.IO.Path.GetFileName(PostedFile.FileName);
إذا (fileExt == ".jpg" || fileExt == ".gif" || fileExt == ".png")
{
إذا (System.IO.File.Exists(strFePicSavePath + imgNameOnly) && (checkboxlistRewrite.Items[i].Selected == false))
{
erroNumber = erroNumber + 1;
picInfo.Append("<b>خطأ:</b>File("+ (i+1) +") " + imgNameOnly + " موجود بالفعل، يرجى تغيير اسم الملف<br/>" );
}
}
آخر
{
erroNumber = erroNumber + 1;
picInfo.Append("<b>خطأ:</b> file("+ (i+1) +") " + imgNameOnly + " ملحق" + fileExt + " غير مسموح به<br/>" );
}
}
إذا (رقم الخطأ > 0)
{
picInfo.Append("<font color=red>لم تكتمل جميع العمليات، يرجى تصحيح الأخطاء والمتابعة مرة أخرى</font><br/>");
}
آخر
{
for(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,new System.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
Switch(strFePicThumbFormat) ؛
{
يمكن أن يحصل تنسيق // jpeg على أصغر حجم للملف، ويكون png هو الحجم الأكبر
//الحالة "JPEG":
حالة "جبغ":
newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.jpg",System.Drawing.Imaging.ImageFormat.Jpeg);
imgThumbnail = imgNameOnly + "_thumb.jpg";
استراحة؛
حالة "جيف":
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
;
+ "KB<br/>");
picInfo.Append("<b>اسم الصورة المصغرة:</b>" + imgThumbnail + " ( " + newImg.Width + " x " + newImg.Height + " )<br/><br/>")
; التخلص();
newImg.Dispose();
}//for
>
كل العمليات ناجحة</font><br/>");
}
آخر
{
picInfo.Append("<font color=red>هناك خطأ، يرجى التحقق. لم تكن العملية ناجحة</font><br/>");
}
lblPicInfo.Text = picInfo.ToString()
;
</الخط>