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

كيفية التعامل مع الصور و تخزينها في DB

مغلق
بدأه moh1983 في 6 نوفمبر 2005 · 3 رد · 1,183 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

موضوع كيفية التعامل مع الصور و طريقة تحزينها في قاعدة البيانات من الأمور المهمة التي يجب على المبرمج ان يكون على علم بها و ان يكون هناك نوع من المرونة في التعامل مع الصور و كيفية تعديلها و استدعائها و حذفها و تحميلها من قاعدة البيانات و بالتالي أرتأيت الى ان افتح هذا الموضوع للمناقشة و ابداء الاراء و لكي نفتتح هذه الموضوع اقترح بأن يكون هناك تطبيق صغير يوضح عملية تحميل صوره " على سبيل المثال " في قاعدة البيانات .

و من ثم كيفية استدعاء هذه الصوره و عرضها في صفحة اخرى اضافة الى وجود قدره للتعامل مع هذه الصوره مثل امكانية حذفها و تعديلها .و ارجو من الجميع المشاركة و ابداء الاراء :)

#2

وعليكم السلام ورحمة الله

فضلاً قم بالبحث في المنتدى وستجد ان الموضوع قد قتل بحثاً

عموماً هذا مثال /index.php?showtopic=44989

#3

كيف قتل الموضوع تدثاً ولا يوجد حلاً حتى الان هل انتم مبرمجون حقيقيون لا تستطيعون الوصول للحل وتثبيته

الرجل يسأل عن عرض الصور في تطبيق الويب وانت تشرح في تطبيق الوندوز ونحن نعلم ان المسألة مختلفة تماما وخاصة في الصور

الرجاء توضيح الموضوع :- لاتقول ابحثي في المنتدى بحثت كثيراً واستمريت في البحث لمدة اسبوع وكل المواضيع المطروحة اما ان يتحدث على خجل من المسألة ويجاوب وهو على استحياء الافضل يقول لا اعرف .

ولدي ملاحظة على المنتدى الكريم : - عادة تكون الردود فقط بسرعة دون عناية مم اللي يجاوب ولا يوجد اكثر من رد على السؤال لماذا يا منتدى المبرمجين وخاصة مطوري الويب

تقبلوا تحياتي اختكم سامية

#4

السلام عليكم اخي العزيز

بالنسبة عن كيفة رفع الصورة الي موقع وحفظها داخل قاعدة البيانات في العادة نحفظ اسم الصورة فقط والصورة تحفظ في مجلد معين ...

ولكن هناك في شروط في هذا ارجوا ان يتسع صدرك لها ..

من اول هذه الشروط وجود مجلد لحفظ الصورة :)

الشرط الثاني هو امتدادات المسموح بها

الشرط الثالث هو حجم الصورة

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

الشرط الاخير ان تضع في بالك ان سوف تحمل مواضع( اذا كنت سوف تصمم موقع اخبار مثلا) في صورة واخر من دون صورة فيجب ان تصع شروط لذالك

وعندك مشكلة هي عرض الصور في الصفحة التي سوف تعرض الصورة ..... :)

والان سوف اعطيك الكود كامل وانت اقراءها وتمعن فيها ....

<%@ Page Language="VB" Debug="true"  validaterequest="false" %>
<%@ Import Namespace ="system.data" %>
<%@ Import Namespace ="system.data.oledb" %>
<%@ Import Namespace="System.IO" %>'لكي تستطيع ان ترفع الملفات

Dim allowedsizekb As Integer = 100'تعريف متغير لتحديد الحجم المسموح به للججم الصورة 
 Dim ext As New ArrayList()'مصفوفة لكي تضع بها  امتدادات الصورة

		ext.Add(".gif")
		ext.Add(".jpg")
'هذه هي امتدادات الصورة  التي عرفنا المصفوفة  مسبقا

Sub insert_data(ByVal sender As Object, ByVal e As System.EventArgs) 'امر عن الضغط على زر التحميل



		If upfile.Value = "" Then 'هذا اذا كان مربع التحميل فارغ يطبق هذا الامر 
			cmd.CommandText = "insert into xxxxx (xxxxxx,xxxxxx) VALUES (@xxxxx,@XXXXXX)"  'هذا هي اسماء الحقول وانا استخدم البرامترات ويمكن استخدام الطريق العادية في اضافة  يعني ليست مشكلة 

			cmd.Parameters.AddWithValue("@XXXXX", هنا تكتب اسم مربع النص الذي تريد.Text)
			cmd.Parameters.AddWithValue("@XXXXXX", هنا كذالك تكتب مربع النص.Text)

			cmd.Connection = con  ' هذا تابع الاتصال 
			Try
				con.Open()
				cmd.ExecuteNonQuery()
				con.Close()
				Response.Redirect("INDEX.aspx")
			Catch ex As Exception
				Response.Write(ex.ToString)
				con.Close()
			End Try

'من هنا الخاص بالصورة 
		Else
			Dim filesize As Integer = upfile.PostedFile.ContentLength / 1024
			If (filesize > allowedsizekb) Then
				lblshowerrs.Text = "حجم الصورة أكبر من 100 كيلو بايت"   
'طبعا هنا معرف  لبيل 
				Exit Sub
'في  الكود السابق تم تعريفها مسبقا وهنا يتم قسمة 1024 لانك تعرف الاحجم كيف تقسيمها 

			Else
				lblshowerrs.Text = ""
			End If
			Dim fileext As String = Path.GetExtension(upfile.PostedFile.FileName).ToLower()
'الامر السابق للتحقق من الامتدادات التي عرفنها مسبقا 
			If (Not ext.Contains(fileext)) Then
				lblshowerrs.Text = "نوع ملف غير مسموح به"
				Exit Sub
			Else
				lblshowerrs.Text = ""
			End If
			Dim strfile As String
			strfile = Path.GetFileName(upfile.PostedFile.FileName)
			If File.Exists(Server.MapPath("هنا تضع اسم المجلد") & strfile.ToString) Then
				Dim intpath As Integer = 0

				Do While File.Exists(Server.MapPath("هنا تضع اسم المجلد") & strfile.ToString)
					strfile = Path.GetFileName(upfile.PostedFile.FileName)
					strfile = Path.GetFileNameWithoutExtension(strfile.ToString) & intpath.ToString & Path.GetExtension(strfile.ToString)
					intpath = intpath + 1
				Loop
'في الامر السابق تم عمل امر لاخد اسم الصورة وامتداهنا واذا تكرر الاسم يضيف لها واحد لكي لا تحذف الصورة او تستبدل 
			End If



			upfile.PostedFile.SaveAs(Server.MapPath("اسم المجلد ") & strfile)
'هنا عرفنا اسم  مربع تحميل الصورة بالمتغير   STRILE


			 cmd.CommandText = ("insert into *******(***,****,photo) values ('" & ***.Text & "','" & ****.Text & "','" & strfile.ToString & "')")
'هنا اذا كان مربع تحمل صورة فية اسم الصورة 



						Try
				con.Open()
				cmd.ExecuteNonQuery()
				con.Close()

				Response.Redirect("INDEX.aspx")

			Catch ex As Exception
				Response.Write(ex.Message)
				con.Close()
			End Try

		End If

	End Sub

وبنسبة لما يكون داخل الاتش ام ال

<asp:Label ID="lblshowerrs" runat="server" />
<input name="file" type="file" id="upfile" size="70"  style="width:500" runat="server" />
<asp:LinkButton ID="ok" runat ="server" OnClick="insert_data" Text="موافق"/>

هذا ما يخص تحميل الصورة وبالنسبة لعرض الصورة ايش رائك ادعة لمرة اخرى :)

يعني مو كلة اليوم .

مع مراعة تسميات الجداول والحقول ..

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

ان وصلت الفكرة او سوف اضع لك المثال كاملا

وشهركم كريم

مع خالص التحية

تم تعديل هذه المشاركة بواسطة متعلم طازج في 2 أكتوبر 2006 في 00:15

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

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