بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
كيفية إظهار صورة مخزنة في قاعدة البيانات وذلك على هيئة رابط في الجريدفيو وذلك عند الضغط على الرابط يتم فتح الصورة
مع ملاحظة ان الصورة مخزنة في قاعدة البيانات كصورة وليس مسارها
مع الشكر للجميع
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
كيفية إظهار صورة مخزنة في قاعدة البيانات وذلك على هيئة رابط في الجريدفيو وذلك عند الضغط على الرابط يتم فتح الصورة
مع ملاحظة ان الصورة مخزنة في قاعدة البيانات كصورة وليس مسارها
مع الشكر للجميع
1- قم بإضافة GenericHandler وذلك من خلال Add New Item و سمه مثلاً showimages.ashx ...
2-قم بتعديل الكود داخل هذا الملف ليشمل التالي
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "image";
if (context.Request.QueryString["id"] != null)
{
//ضع هنا الطريقة التي تقوم بها بالإتصال بقاعدة البيانات و جلب الصورة ثم تخزينها داخل متحول من النوع Byte[] إسمه image
context.Response.Clear();
if (image !=null && image.Length != 0)
{
context.Response.OutputStream.Write(image.ToArray(), 0, image.Length);
context.Response.End();
}
}
else
{
throw new Exception("Id has not been supplied !!");
}
}3- عدل صفحة إظهار الصور بحيث تقوم بإضافة عمود TemplateField :
<asp:TemplateField >
<ItemTemplate>
<asp:HyperLink runat="server" ID="newImagePicker" Height="134px"
NavigateUrl='<%# FormatURL(DataBinder.Eval(Container.DataItem, "Id")) %>' Width="157px" />
</ItemTemplate>
</asp:TemplateField>4- قم بإضافة الكود التالي :
public string FormatURL(object strArgument)
{
return ("~/showimages.aspx?id=" + strArgument.ToString());
}4- قم بإضافة صفحة showimages.aspx بداخلها Image وقم بكتابة الكوود التالي في حدث Page_Load :
Image1.ImageUrl = "showimages.ashx?id=" +Request.QueryString["id"]
بالتوفيق
تم تعديل هذه المشاركة بواسطة م. حسام فيصل في 6 يناير 2010 في 10:08
السلام عليكم ورحمة الله وبركاته
اخي العزيز اشكرك على الرد
ولكن اود ان اوضح لك اني ما اريده هو عرض البيانات في GridView وعرض الصورة في GridView على شكل رابط عند الضغط عليه يتم فتح الصورة
وشكرا
أخي العزيز ممكن مثال بالـ VB
أخي القصة مش صعبة
أتمنى اني اعرف اوصلك الفكرة
1- في البداية لازم تروح على القائمة اللي في GridView وتختار edit Column .
2- بعدين راح تشيل الصورة الموجودة في selected item .
3- وتضيف مكانها imageField من القائمة اللي فوقها وتحولها ل templates. وبعدين اضغط موافق.
4- بعدة كدة روح على الGridView اللي عندك واضغط بالزر اليمين عليها راح تلاقي edit template واختار بعدها اسم التيمبليت الموحود اعتقد اسمه Column[0]I.
5- راح تفتح معك واجهة التيمليت وراح تلاقي صورة صغيرة وجنبها سهم .. اضغط على السهم واختار editDataBinding.
6- راح تيجي شاشة تختار منها imageURL
7- في Bound TO بتختار ID تاع الصورة
وفي الFormat بكتب رابط صفحة رسم الصورة أعتقد زي اللي شرحها أخي م. حسام فيصل
ملاحظة مهمة جدا ..... لازم تكتب بعدرابط الصفحة الجملة هذه ?id={0 {
يعني مثلا انا عندي طلع الرابط بالشكل هذا ImageFromDB.ashx?id={0}............. .ok
على اعتبار ان صفحة ImageFromDB.ashx هي صفحة الرسم من قاعدة البيانات
-8- بعد كدة اضغط موافق ومبروك عليك احلى البوم صور
اي سؤال او استفسار عن اي نقطة ... الرجاء تحديد النقطة اللي عندها مشاكل وان شاء الله بنحلها
اذا ما وصلت الصورة جيدا عن الموضوع أبغني .. وبحاول اعملك القصة كلها فيديو
دمتم بعز
أخي الفاضل المشكلة عندي ان الجزء الخاص binding for imageURL الموجودة ضمن شاشة editDataBinding غير نشط
يوجد مثال ارجوا الاطلاع عليه وتعديله مع الشكر
ملحوظة المثال بدون قاعدة بيانات لكبر حجمها واعتبر قاعدة البيانات أكسيس واسمها employee.mdb والجدول اسمه scanner ويحتوي على ثلاثة حقول الاول ser الرقم والثاني الاسم name والثالث scan وهو للصورة وهو من نوع كائن OLE واشكرك مرة اخرى
up
اعتذر عن الغباب خلال الفترة السابقة
أخي علاء .. هذه مشكلة متوقعة.
بنفس شاشة editDataBinding
راح تلاقي اسقل الشاشة كلمة refresh schema باللون الازرق .... فقط اضغط عليها وان شاء الله بتنحل المشكلة
وبتتنشط معك القائمة
ربنا يوفق
انا ودّي اني ارفع صور او فيديو لشرح الموضوع ... لكن لا اعرف اسرع واسهل الطرق لذلك
السلام عليكم، كيف الحال أخ علاء
أنا فهمت منك أنه الصورة ما تظهر في الـ GridView إلا على شكل رابط، لعمل ذلك قم بتعديل الكود تبع الأخ "م. حسام فيصل" إلى
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "image";
context.Response.AppendHeader("Content-Disposition", "attachment; filename=your_file_name.jpg"); // Add this to force download
if (context.Request.QueryString["id"] != null)
{
//ضع هنا الطريقة التي تقوم بها بالإتصال بقاعدة البيانات و جلب الصورة ثم تخزينها داخل متحول من النوع Byte[] إسمه image
context.Response.Clear();
if (image !=null && image.Length != 0)
{
context.Response.OutputStream.Write(image.ToArray(), 0, image.Length);
context.Response.End();
}
}
else
{
throw new Exception("Id has not been supplied !!");
}
}السلام عليكم :
بصراحة حل المهندس فيصل رائع .
شكرا لكم جميعا
مشكور أخي الغالي
علاء عبدالخالق كتب:بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
كيفية إظهار صورة مخزنة في قاعدة البيانات وذلك على هيئة رابط في الجريدفيو وذلك عند الضغط على الرابط يتم فتح الصورة
مع ملاحظة ان الصورة مخزنة في قاعدة البيانات كصورة وليس مسارها
مع الشكر للجميع
مشكوور أخي ممكن تعطني اسم البرنامج الدي تعمل عليه