الانتقال إلى المحتوى
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.

هل يمكن تحميل ملفات الصور ذات الاسم والمسار المحدد بدون استخدام Input File

Featured Replies

بتاريخ:

السلام عليكم

أنا أتعامل مع الصور بشكل طبيعي ضمن النظام من حيث التحميل والعرض ولكن واجهتني المتطلبات التالية:
1- كيف يمكن عرض الصورة المنتقاة مباشرة ضمن عنصر image ليشاهدها المستخدم فور انتقائها، و لا يضطر لحفظها ومن ثم الاستعلام عنها حتى يتم جلبها من قاعدة البيانات من خلال servlet وعرضها.
2- في حال كانت الصورة معروفة الاسم والامتداد والمسار هل يمكن من خلال الضغط على مفتاح محدد تحميل الصورة مباشرة دون فتح صندوق الحوار الخاص بالويندوز للاختيار صورة محددة
3- كيف يمكن حذف الصورة التي تم تحميلها بعد التأكد من اتمام عملية الحفظ.

الرجاء النصيحة من الخبراء
مع الشكر سلفا

بتاريخ:

بالنسبة للاسئلة بتاعتك فالاجابة كالتالى

1- لازم ترفع الصورة وبعدين المستخدم يشوفها حتى فى اى موقع لرفع الصور بيحصل كده لان دى بيئة الويب
2 فى بيئة الويب لا يمكن التعامل مباشرة مع جهاز العميل الا من خلال الجافا سكريبت ولا يمكن من خلال الجافا سكريبت انك تتصل بال File system الخاص بالعميل
3 احصل على ال ID الخاص بالصورة وقم بحذفه

بتاريخ:
  • كاتب الموضوع

بالنسبة للاسئلة بتاعتك فالاجابة كالتالى

1- لازم ترفع الصورة وبعدين المستخدم يشوفها حتى فى اى موقع لرفع الصور بيحصل كده لان دى بيئة الويب
2 فى بيئة الويب لا يمكن التعامل مباشرة مع جهاز العميل الا من خلال الجافا سكريبت ولا يمكن من خلال الجافا سكريبت انك تتصل بال File system الخاص بالعميل
3 احصل على ال ID الخاص بالصورة وقم بحذفه


بالنسبة للإجابة الأولى:
يبدو أنه لا يزال هناك شيء غامض بالنسبة لي (ربما لأنني لم أقم بعمل deploy للبرنامج على مخدم ويب لوجيك مستقل وإنما لا زلت أجربه من خلال jdeveloper) والذي أنا مستوعبه هو أنه عندما أقوم بعمل رن للبرنامج أصبح أنا المستخدم وبالتالي عندما أقوم برفع صورة معينة فأنا أقوم برفعها من محطتي (جهاز العميل) إلى مخدم الويب لوجيك ليتم حفظها ضمن قاعدة البيانات، وفي حال كان هذا الكلام صحيح فهل تقصدين أنه لا يمكن عرض الصور للمستخدم (وهو الذي قام برفعها) حتي يقوم بعملية commit ومن ثم execute ، ألا يوجد أي طريقة لعرضها ليتأكد المستخدم أنه اختار الصورة الصحيحة قبل قيامه بعملية commit.

بالنسبة للإجابة الثانية:
مشكورة أخت هالة بس كأني أشعر أن هناك ضعف في الإمكانيات فمثلا لو أردت أن أقوم برفع 100 صورة معروفة الاسم والمسار وحفظها مباشرة ضمن قاعدة البيانات فهذا يتطلب عملا روتينيا وشاقا بالنسبة للمستخدم، هل هذا صحيح؟

بالنسبة للإجابة الثالثة:
أنا لم أقصد حذف السجل الذي يحتوي الصورة وإنما قصدت حذف ملف الصورة من محطة العميل بعد القيام برفعها وحفظها ضمن قاعدة البيانات.

مع الشكر
بتاريخ:

ردي بالأزرق تحت كل نقطة

بالنسبة للإجابة الأولى:
يبدو أنه لا يزال هناك شيء غامض بالنسبة لي (ربما لأنني لم أقم بعمل deploy للبرنامج على مخدم ويب لوجيك مستقل وإنما لا زلت أجربه من خلال jdeveloper) والذي أنا مستوعبه هو أنه عندما أقوم بعمل رن للبرنامج أصبح أنا المستخدم وبالتالي عندما أقوم برفع صورة معينة فأنا أقوم برفعها من محطتي (جهاز العميل) إلى مخدم الويب لوجيك ليتم حفظها ضمن قاعدة البيانات، وفي حال كان هذا الكلام صحيح فهل تقصدين أنه لا يمكن عرض الصور للمستخدم (وهو الذي قام برفعها) حتي يقوم بعملية commit ومن ثم execute ، ألا يوجد أي طريقة لعرضها ليتأكد المستخدم أنه اختار الصورة الصحيحة قبل قيامه بعملية commit.
ليس ضرورياً أن يتم الحفظ بل يجب أن يتم عمل upload للصورة فقط لكي يتم العرض

بالنسبة للإجابة الثانية:
مشكورة أخت هالة بس كأني أشعر أن هناك ضعف في الإمكانيات فمثلا لو أردت أن أقوم برفع 100 صورة معروفة الاسم والمسار وحفظها مباشرة ضمن قاعدة البيانات فهذا يتطلب عملا روتينيا وشاقا بالنسبة للمستخدم، هل هذا صحيح؟
هذه الـ 100 صورة هل مربوطة ببيانات أم الـ 100 صورة مربوطة بسجل واحد؟ عموماً في الوب لا نستطيع رفع أكثر من ملف في المرة الواحدة إلا إذا تم استخدام JavaScript ولكن الشئ الغير منطقي هنا هو أنه لن يتم ربط الـ 100 صورة ببيانات واحدة لأنه لو مطلوب نقل هذه الملفات مرة واحدة فالأفضل استخدام FTP أو UCM

بالنسبة للإجابة الثالثة:
أنا لم أقصد حذف السجل الذي يحتوي الصورة وإنما قصدت حذف ملف الصورة من محطة العميل بعد القيام برفعها وحفظها ضمن قاعدة البيانات.
لا يمكن ذلك إلا من خلال JavaScript ولكن يمكن منعها ولذلك تعتبر شبه مستحيلة

بتاريخ:
  • كاتب الموضوع

مشكور أخ مصطفى
بس في الحقيقية أحتاج لبعض التوضيح وهو كما يلي:


ليس ضرورياً أن يتم الحفظ بل يجب أن يتم عمل upload للصورة فقط لكي يتم العرض

حسب ما أعلم (وما هو شغال عندي) أنه لكي يتم عرض صورة معينة موجودة ضمن قاعدة البيانات يتم ربط مصدر الصورة بـ servlet لها شكل قياسي ومكتوب فيها تعليمة sql تقوم بعمل select من الجدول الذي يحتوي الصورة بحسب where معينة، وبالتالي كيف يتم عرض صورة موجودة في جدول معين في قاعدة البيانات دون أن تكون هذه الصورة محفوظة فيه بشكل كامل.


هذه الـ 100 صورة هل مربوطة ببيانات أم الـ 100 صورة مربوطة بسجل واحد؟ عموماً في الوب لا نستطيع رفع أكثر من ملف في المرة الواحدة إلا إذا تم استخدام JavaScript ولكن الشئ الغير منطقي هنا هو أنه لن يتم ربط الـ 100 صورة ببيانات واحدة لأنه لو مطلوب نقل هذه الملفات مرة واحدة فالأفضل استخدام FTP أو UCM

في الحقيقة أنا لدي جدول رئيسي يتضمن بيانات نصية محددة متعلقة بوثائق خاصة، ويرتبط مع هذا الجدول الرئيسي جدول فرعي يتضمن صور هذه الوثائق، وهذه الصور يتم إجراء عملية scan لها من قبل الموظف بشكل آلي (حسب إعدادات scaner بحيث تم إفتراض أسماء محددة ومتسلسلة لهذه الصور وحفظها ضمن محطة العميل ضمن مسار محدد)، وبما أنني أعتقد أن هذا الإجراء منطقي وروتيني فهل يوجد طريقة سريعة لتحميل جميع هذه الصور مباشرة وحفظها ضمن هذا الجدول الفرعي.
فيما يتعلق باستخدام ftp فهل يمكن أن تشرح لي (إذا سمحت) كيف يتم ذلك ضمن adf.


لا يمكن ذلك إلا من خلال JavaScript ولكن يمكن منعها ولذلك تعتبر شبه مستحيلة

في حال لم تكن ممنوعة فما هو الكود الذي يقوم بذلك رجاءً.

يوجد استفسار فقط للتوضيح رجاء وهو عندما يفتح صندوق الحوار الخاص بالويندوز من خلال العنصر input file لانتقاء الملف المحدد المراد تحميله فهل يعرض ملفات النظام الخاصة بمحطة العميل أم بمحطة مخدم الويب لوجيك (لأني بدأت أدوخ).
بتاريخ:

أنت الآن تريد عرض الصورة فقط قبل الحفظ وبالتالي لا يجب عليك حفظ الصورة بل يكفي أن تقوم بعمل upload لها
بالنسبة لعملية المسح الضوئي فتوجد أدوات لأخذ الصور من العميل مباشرة إلى السيرفر ولكن هذه الطريقة متقدمة جداً وتحتاج إلى كتابة كود كبير وبالتالي أقترح عليك أن يتم الحفظ في مسار على السيرفر بحيث يكون shared folder وبالتالي يمكنك قراءة محتوياته مباشرة ، أما لو كان الأمر على جهاز العميل فهذا يتطلب أدوات خارجية متقدمة جداً ولن يكون من السهل عليك وضعها في ADF
استخدام ftp لا يتم من خلال ADF بل يتم من خارجه
عندما تفتح الملف من input file فهو يعرض الملفات على جهاز العميل

بتاريخ:
  • كاتب الموضوع

أقترح عليك أن يتم الحفظ في مسار على السيرفر بحيث يكون shared folder وبالتالي يمكنك قراءة محتوياته مباشرة ، أما لو كان الأمر على جهاز العميل فهذا يتطلب أدوات خارجية متقدمة جداً ولن يكون من السهل عليك وضعها في ADF


في الحقيقة لم أفهم ماذا سوف أستفيد في حال جعلت الصور محفوظة ضمن shared folder على المخدم، أي لنفرض أن قمت بهذه العملية كيف سأقوم بتحميل هذه الصور إلى قاعدة البيانات حتى أقوم بعرضها لاحقا.
بتاريخ:

يمكن الوصول إلى موقع الملفات على السيرفر في هذه الحالة لأن الملفات لم تعد على جهاز العميل وبالتالي يمكن استخدام كافة الوظائف المتاحة في java.io للتعامل مع streams ومن ثم يمكن التعامل مع الملفات

بتاريخ:
  • كاتب الموضوع

شكرا لك أستاذ مصطفى الآن وضحت الفكرة،

لكن مع الأسف لا زالت المشكلة الخاصة بالسؤال الأول غير محلولة رغم انك قلت أنه "ليس ضرورياً أن يتم الحفظ بل يجب أن يتم عمل upload للصورة فقط لكي يتم العرض"
وأنا ببساطة قمت بما يلي:
1- set autosubmit = true to inputfile component
2- set partial trigger = if1 to image component
حيث (inputfile id = if1)
وعندما أختار الصورة وأضغط على مفتاح upload يتم رفع الصورة بنجاح ولكن أعود وأقول هي لا تظهر ضمن عنصر الصورة مباشرة وأحتاج إلى أن أعمل commit ومن ثم execute.

هل هذا هو السلوك الصحيح أم أنه يوجد شيء ما ناقص في المعالجة.

مع الشكر

بتاريخ:

هذا يتم غالباً لأنك تقوم بكتابة كود يقوم بتحميل الصورة من قاعدة البيانات وبالتالي لن يعمل إلا مع الحفظ والحل أن يكون لديك كود يقوم بالقراءة من ملف موجود في مسار معين حتى يمكن عرض الصورة

بتاريخ:
  • كاتب الموضوع

أعتقد أن الإمكانيات أصبحت واضحة

مع الشكر لكل من ساهم في المشاركة

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

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

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

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

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

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.