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

التعامل مع الصور فى ال Asp.net

مغلق
بدأه rabiemohamed في 5 يناير 2008 · 9 رد · 2,210 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الاخوة الاعزاء اريد فى صفحة تسجيل اضافة حقل الصورة وفى السابق سالت كيفية ادراج صورة واشار على بعض الاخوة بالمنتدى باستخدام الاداه fileupload وانا استخدم الكود فى التعامل مع ال asp.net ففى حدث التسجيل اكتب الكود التالى

Dim cmd As New SqlCommand("insert into trainer(trainer_name,job_id,address,tel_home,tel_work,mobile,e_mail,school_id,us

er_id)values('" & TextBox1.Text & "','" & Drjop.SelectedValue & "','" & TextBox2.Text & "','" & TextBox3.Text & "','" & TextBox4.Text & "','" & TextBox5.Text & "','" & TextBox6.Text & "','" & Drschool.SelectedValue & "','" & Druser.SelectedValue & "')", con)

السؤال ما هو الكود لادراج الصورة الذى اضيفه الى الكود السابق

ارجو الافادة

#2

أولاً :

علينا إنشاء قاعدة البيانات المطلوبة و سميتها img و من ثم أضيف عليها جدول و فيه حقلين لرقم الصورة يتولد بشكل أوتوماتيكي و حقل آخر للصورة من نمط image و يمكن أن نستخدم نمط آخر و هو varmaxbinary فكلاهما يصلح لتخزين الصور في قاعدة البيانات و التي سيتم تخزين الصورة فيها بشكل <Binary data>

ثانياً :

ننشئ تطبيق جديد من visual studio لموقع Asp.net

نضيف عنصر FileUpload على الصفحة و هو مخصص لرفع ملفات من جهازك و سنستخدمه لرفع ملفات الصور المراد تخزينها في قاعدة بياناتك .

و أيضاً أضف زر ليتم برمجته من أجل عملية التخزين بالضغط عليه مرتين قم بكتابة الكود التالي فيه و سأقوم بشرحه .

protectedvoid Button1_Click(object sender, EventArgs e)
{
int Length = FileUpload1.PostedFile.ContentLength;
byte[] Pic = newbyte[Length];
FileUpload1.PostedFile.InputStream.Read(Pic,0,Length);
Conn = new SqlConnection(connection);
Conn.Open();
try
{ 
Command = new SqlCommand("insert into img (pic) values (@pic)",Conn);
Command.Parameters.AddWithValue("@pic",Pic);
Command.ExecuteNonQuery();
}
catch(Exception ex)
{
Response.Write(ex.Message.ToString());
}
finally
{

Conn.Close();
Label1.Text ="Yes , The image have saved";
}

حيث الأسطر الثلاث التالية تبين طريقة تعريف مصفوفة من نمط Byte لتخزين الصور فيها و من ثم إضافتها على قاعدة البيانات .

int Length = FileUpload1.PostedFile.ContentLength;
byte[] Pic = new byte[Length];
FileUpload1.PostedFile.InputStream.Read(Pic,0,Length);

حيث يمثل المتحول Length حجم المصفوفة pic

و باستخدام العنصر FileUpload1 قمت بقراءة هذه المصفوفة من البايتات و هي عبارة عن الصورة المرفوعة من جهازك .

الأسطر التالية تمثل عملية الاتصال بقاعدة البيانات و إضافة مصفوفة الصورة إلى الجدول

Conn = new SqlConnection(connection);	  Conn.Open();

	  try 
	  { 
		  Command = new SqlCommand("insert into img (pic) values (@pic)",Conn);
		  Command.Parameters.AddWithValue("@pic",Pic);
		  Command.ExecuteNonQuery();
	  }
		  catch(Exception ex)
	  {
		  Response.Write(ex.Message.ToString());
	  }
	  finally
	  {

		Conn.Close();
	   Label1.Text ="Yes , The image have saved";
	  }

image.zip

-----------------------------------------------------------------------------------------------------------------------------





 

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

Mohammad Sonaiea
 

#3

لم اجربه لسه ولكن اشكرك على اهتمامك وجزاك الله خير

#4

اخى العزيز جربت الكود ولم يعمل معى على فكرة انا بشتغل asp.net بال vb وليس #c

#5

اخي الكود يعمل

على كل حال اسوف اضع كود C# في وقت لاحق ان شاء الله

-----------------------------------------------------------------------------------------------------------------------------





 

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

Mohammad Sonaiea
 

#6

السلام عليكم

اخي محمد جربت الكود ولكن بداتا بيز اكسيس ، ولكن يعطيني خطأ

Could not find installable ISAM.

#7

أخي الكريم انا لم اتعامل مع Access كثيرأ ولا أحب ان اتعامل معه

كل حال هذا رابط يمكن ان يفيدك

http://support.microsoft.com/kb/209805

تم تعديل هذه المشاركة بواسطة محمد سماقية في 10 يناير 2008 في 21:57

-----------------------------------------------------------------------------------------------------------------------------





 

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

Mohammad Sonaiea
 

#8

بارك الله فيك

#9

شكرا علي الشرح لكن انا عندي استفسار ازاي اقدر استدعيها من خلال قاعدة البيانات علشان اعرضها في image و شكرا.............

#10
peter_oussa كتب:
شكرا علي الشرح لكن انا عندي استفسار ازاي اقدر استدعيها من خلال قاعدة البيانات علشان اعرضها في image و شكرا.............

هلا أخي

تستطيع استخدام ASHX من أجل ارجاع الصورة من الـdatabase

وهذا مثال


using System;
using System.Web;
using System.Data;
using System.Data.SqlClient; public class NWEmpPhotoHandler : IHttpHandler
{
public bool IsReusable { get { return true; } }

public void ProcessRequest(HttpContext ctx)
{
string id = ctx.Request.QueryString["id"];

SqlConnection con = new SqlConnection(<<INSERT CONNECTION STRING HERE>>);
SqlCommand cmd = new SqlCommand("SELECT Photo FROM Employees WHERE EmployeeID = @EmpID", con);
cmd.CommandType = CommandType.Text;
cmd.Parameters.Add("@EmpID", id);

con.Open();
byte[] pict = (byte[])cmd.ExecuteScalar();
con.Close();

ctx.Response.ContentType = "image/bmp";
ctx.Response.OutputStream.Write(pict, 78, pict.Length - 78);
}
}
<%@ webhandler language="C#" class="NWEmpPhotoHandler" %>

وبعد ذلك عند عنصر الimage html

<img src="NWEmpPhoto.ashx?id=1" />

حيث id هو رقم الصورة و NWEmpPhoto.ashx هو اسم ملف ashx

http://2fwww.developerfusion.com/show/5223/

http://www.c-sharpcorner.com/UploadFile/de...sForImages.aspx

-----------------------------------------------------------------------------------------------------------------------------





 

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

Mohammad Sonaiea
 

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

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