الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة في عرض الصور من قاعدة البيالنات

مغلق
بدأه زيد الرافدين في 6 ديسمبر 2006 · 5 رد · 777 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

انا استعمل هذا الكود لاستدعاء الصور من database وعرضها في ImageBox

Dim con As New Data.SqlClient.SqlConnection
		con.ConnectionString = "Data Source=NANNOS;Initial Catalog=Tomy;Integrated Security=SSPI;"
		Dim cmd As New Data.SqlClient.SqlCommand
		cmd.Connection = con
		con.Open()
		cmd.CommandType = Data.CommandType.Text
		cmd.CommandText = "select * from Zaid"
		Dim rd As Data.SqlClient.SqlDataReader
		rd = cmd.ExecuteReader
		rd.Read()
		Dim arr As Byte()
		arr = CType(rd.Item(0), Byte())
		Dim ms As New MemoryStream(arr)
		Dim bmp As System.Drawing.Bitmap
		bmp = System.Drawing.Image.FromStream(ms)
		Dim filename As String
		filename = "Image.jpg"
		bmp.Save(Server.MapPath(filename),   System.Drawing.Imaging.ImageFormat.Jpeg)
		Image1.ImageUrl = "~/" + filename

ولكن المشكلة اني اريد حذف ملف الصورة بعد عرضه لذلك استعملت الكلاس IO

واصبح الكود كما يلي

Dim con As New Data.SqlClient.SqlConnection
		con.ConnectionString = "Data Source=NANNOS;Initial Catalog=Tomy;Integrated Security=SSPI;"
		Dim cmd As New Data.SqlClient.SqlCommand
		cmd.Connection = con
		con.Open()
		cmd.CommandType = Data.CommandType.Text
		cmd.CommandText = "select * from Zaid"
		Dim rd As Data.SqlClient.SqlDataReader
		rd = cmd.ExecuteReader
		rd.Read()
		Dim arr As Byte()
		arr = CType(rd.Item(0), Byte())
		Dim ms As New MemoryStream(arr)
		Dim bmp As System.Drawing.Bitmap
		bmp = System.Drawing.Image.FromStream(ms)
		Dim filename As String
		filename = "Image.jpg"
		bmp.Save(Server.MapPath(filename), System.Drawing.Imaging.ImageFormat.Jpeg)
		Image1.ImageUrl = "~/" + filename
		IO.File.Delete(Server.MapPath(filename))

والمشكلة التي تواجهني هي اني عند حذف ملف الصورة في النهاية فان الصورة لاتظهر في Imagebox

الرجاء مساعدتي

شكرا

تم تعديل هذه المشاركة بواسطة زيد الرافدين في 6 ديسمبر 2006 في 19:12

#2
اقتباس
والمشكلة التي تواجهني هي اني عند حذف ملف الصورة في النهاية فان الصورة لاتظهر في Imagebox

شيء طبيعي

انت حذفت الصوره هتتعرض الزاي ;)

#3

طيب اذا بدي احذف الصورة بعد عرضها كيف ؟؟

#4

لما الصفحه بتوصل للعميل

بيبدأ يحمل ال Objects الموجوده في الصفحه من علي السرفر

و منها الصور يعني مفيش و لا حدث ينفع تحذف فيه الصوره

لأن عن العميل مش هيقدر يعرضها

انا فهمت انك عايز اول ما الصوره تتعرض عند العميل تحذفها

طيب فين الحدث اللي بيقول ان الصوره اتعرضت عن العميل

علي فكره يوجد احداث في الصفحه لا تؤثر علي ال Response

بس متنفعش في الحاله دي خالص

انت ممكن تسجل اسماء الصور دي و كل فتره او حدث معين يحذفها

او حتي تعمل مجلد مؤقت للصور دي

اسف علي الاطاله

#5

طيب لدي فكرة عرض الصورة بدون إنشاء ملف للصورة, الفكرة هي كما يلي:

1 - أنشئ ملف اسمه img.aspx وفي حدث تحميل الصفحة اكتب نفس الشيفرة التي تستخدمها أنت مع تعديل بسيط, وسأفترض أنه يتم تمرير رقم السجل في الجدول الذي يشير إلى الصورة في الـ URL ونحصل عليه باستخدام :

Dim id as string = Request.QueryString("id")

الشيفرة التي تجلب الصورة بتفترض بأن اسم العمود الذي يعبر عن ID السجل اسمه id:

Dim con As New Data.SqlClient.SqlConnection
		con.ConnectionString = "Data Source=NANNOS;Initial Catalog=Tomy;Integrated Security=SSPI;"
		Dim cmd As New Data.SqlClient.SqlCommand
		cmd.Connection = con
		con.Open()
		cmd.CommandType = Data.CommandType.Text
		cmd.CommandText = "select * from Zaid where id = " & id
		Dim rd As Data.SqlClient.SqlDataReader
		rd = cmd.ExecuteReader
		rd.Read()
		Dim arr As Byte()
		arr = CType(rd.Item(0), Byte())
		Response.WriteBinary(arr)

		rd.Close()
	   con.Close()

الآن في الصفحة التي تستدعيها لعرض الصورة فقط مرر مسار الصورة كما يلي:

 Image1.ImageUrl = "img.aspx?id=1"

لاحظ تمرير رقم الصورة في المسار, وقد يكون هذا الرقم ديناميكياً.

#6

عندي سؤال ..

ايش الفائدة من تخزين الصور في الداتا بيس .. مع انه ممكن الاستغناء عن ذلك بوضعها في مجلد وتخزين الرابط في الداتابيس

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…