الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

سؤال :اريد اعرض الصور في صغحة

Featured Replies

بتاريخ:

لو سمحتم عندي سؤالين ضروري:-


1- انا استعمل Jdeveloper 11G وعندي جدول فية Culomn من نوع BBLOB مخزن فية صور اريد اعرض هذه الصور في صغحة
2- عندي جدول ثاني فية عمود ايضا لكن مخزن فية ال Path الخاص بالصور اريد عرض هذه الصور في صفحة من خلال هذا العمود المحتوي على ال Path

  • بعد 2 أسابيع...
بتاريخ:

اولا: بالنسبه لعرض الصوره عن طريق مسارها المخزن فى عمود فى الداتابيز

نقطه مهمه للايضاح اى صور تريد عرضها عن طريق مسارها يجب تخزينها فى فولدر ال public_html الخاص ببرنامجك وليس خارجه وبالطبع يمكن وضع داخله فولدر اخر اسمه images مثلا به حميع الصور بحيث يكون مسار الصوره المخزن فى العمود فى الداتابيز يحتوى على الباس الخاص بها بعد فولدر ال public_html يعنى المسار المكتوب فى عمود الداتابيز هكذا

/Images/j0431640.png 


وكما قلنا هذا المسار معروف للجى ديفيلوبر انه بعد فولدر ال public_html



وكل ما عليك انك تنزل الاتربيوت الخاص بالكولمن اللى فيه المسار من الداتاكنترول باليت ك outputtext وبعدين تقف على ال outputtext ورايت كليك عليه وتضغط convert وتختار image ومن الproperty inspector وفى السورس الخاص بال image تكتب


#{bindings.FullPath.inputValue}



طبعا ال FullPath هو اسم الاتربيوت المتخزن فيه المسار واعمل رن حتلاقى ان الصور ظهرت زى ما انت عاوزها



ملحوظه:

موضوع ان جميع الصور يتم وضعها فى فولدر ال public_html تاتى اهميته فى حاله الديبلوى بحيث ان السيرفر يستخدم الصور الموضوعه فى ال Document root الخاصه بالبرنامج المعمول له ديبلوى

بالنسبه لعرض الصور المخزنه كبلوب فى الداتابيز

حتعمل سيرفلت وتسجلها فى ملف ال web.xml وتديها ال Id الخاص بالرو بتاعك كباراميتر اللى غالبا حيكون Primary key (عشان تعرف اى رو حتجيب الصوره الخاصه به وطبعا حتجيب الاى دى الخاص بالرو من البيج ديفينشن بتاع الصفحه) وبعدين برمجيا حتستدعى العمود البلوب بتاعك وبتقره المحتويات الخاصه بالكولمن ك input Stream واستعين بالكود التالى لعمل ذلك


 private void processerequest(HttpServletRequest req,
                      HttpServletResponse res) throws ServletException,
                                                           IOException {
// هنا بتخلى السيرفلت تاخد الاى دى لخاص بالرو اللى حتجيب محتويات البلوب كولمن بتاعه

String ImageId=req.getParameter("Id");
OutputStream out=res.getOutputStream();

//  هنا بتنادى على الابليكيشن موديول ومنه على الفيو اوبجكت الخاص بالتابل اللى فيه البلوب كولمن


       String amDef="Service.BlobAM" ;
String config = "BlobAMLocal";        

   ApplicationModule am=Configuration.createRootApplicationModule(amDef, config);

   ViewObject vo=am.findViewObject("BlobView");

   if (ImageId!=null){

       vo.setWhereClause("Id="+ImageId);

       vo.executeQuery();
                                      
   }
   if (vo.getEstimatedRowCount()==1){
       Row currenrrow=vo.first();

// ("Content")هو اسم الكولمن البلوب 

BlobDomain image=(BlobDomain)currenrrow.getAttribute("Content");
           
          InputStream is = image.getInputStream();

                           byte[] buffer = new byte[10 * 1024];

                           int nread;

                           while ((nread = is.read(buffer)) != -1)

                           out.write(buffer, 0, nread);

                           out.flush();

                           out.close();
           }
       Configuration.releaseRootApplicationModule(am, false);
    }    



اكيد طبعا حتغير فى الكود تبعا لاسم الكولمن اللى فيه البلوب والكولمن اللى فيه الاى دى الخاص بالرو واسم الابليكيشن موديول والفيو اوبجكت بتاعك ولازم تكون عارف جافا كويس فى كل الحالات واستدعى الميثود دى فى ال doGet وال doPost بتوع السيرفلت



وبعدين فى الصفحه حتنزل صوره من الكومبونت باليت وفى السورس بتاعها حتكتب مثلا

/imageservlet?Id=#{bindings.Id.inputValue}



imageservlet/

اسم السرفلت فى ملف ال web.xml وليس اسم الكلاس بتاعها

 Id=#{bindings.Id.inputValue}



ده الباراميتر بتاعها (الاى دى الخاص بالرو) وبناخده من البيج ديفينيشن واعمل رن وجرب حتلاقى ان الصور المتخزنه كبلوب ظهرت عندك فى الصفحه

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.