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

ارجو المساعدة بفكرة: طريقة عمل لينك لتحميل ملف من قاعدة بيانات mysql

بدأه الـشـاهيـن في 29 أغسطس 2011 · 13 رد · 1,645 مشاهدة · في JavaEE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اريد عمل موقع استضافة ملفات مصغر لمستخدمين مسجلين في موقعي

الجزئية الأولى تم حلها وهي عمل استضافة للملف في الخادم وانشاء سجل بمعلومات الملف وصاحبه في قاعدة بيانات mysql. وهذه الجزئية تم حلها.

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

www.something.com/somewere/download?file=XYZABCDEFG

وبحيث يكون الباراميتر كما يظهر في اللنك مجموعة رموز عشوائية لغرض تمييز كل ملف عن غيره وليصعب تخمينها!

هل من فكرة لعمل ذلك باستخدام servilet او jsp ؟!!!

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

تم تعديل هذه المشاركة بواسطة الـشـاهيـن في 29 أغسطس 2011 في 01:56

#2

وهل تعتقد ان تخزين الملفات فى قاعده البيانات شىء عملى ؟؟؟

تخزين الملفات يكون فى الخادم الخاص بك

لكن فى قاعده البيانات يتم تسجيل البيانات الخاصه بهذا الملف

كالمسار او اسمه او اى شىء اخر تريد فعله

1 −1

Software Developer
Mahmoudkelany.com


 

#3

ليس مهم ان أضعها في قاعدة بيانات اذا كانت اقل كفائة من الخادم.

المهم عندي أن استطيع عمل اللينك السابق لتحميل الملف بدلا من أضع امتداد الملف. هل يمكن مساعدتي في ذلك؟

#4
اقتباس

وهل تعتقد ان تخزين الملفات فى قاعده البيانات شىء عملى ؟؟؟

تخزين الملفات يكون فى الخادم الخاص بك

لكن فى قاعده البيانات يتم تسجيل البيانات الخاصه بهذا الملف

كالمسار او اسمه او اى شىء اخر تريد فعله

+10000

----------

الاخ السائل لتوليد نص عشوائي من حروف وارقام استخدم UUID

how to generate a random alpha numeric string in java

تم تعديل هذه المشاركة بواسطة ihope في 29 أغسطس 2011 في 00:59

other ESTJ thing

اقتباس
Help Me To Help You

0xBAD00DAD.png

#5

اشكر تجاوبكما السريع

هل طريقتي صحيحة بأنني بعد استلام طلب get اقوم بالبحث في قاعدة البيانات بالرمز المرفق ليظهر المكان الفعلي للملف ثم اجري عملية التحميل! صحيح؟...

اذا كان صحيح فارجو افادتي:

1- كيف أتصرف مع تكرار اسماء الملفات في جهاز السيرفر عندما اقوم بتحميلها؟ اعتقد انني لا استطيع فصلها في مجلدات!!!

2- هل بالإمكان اعطاء مثال لعمل صفحة jsp او servlet تقوم بعمل الداونلود ليبدأ التحميل مباشرة؟ لم اعثر على مواضيع في الموقع لطريقة تنزيل الملفات وانما فقط لرفع الملفات!

#6

يمكنك فعل ذلك عن طريق خوارزميه او اى شىء من صنعك

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

عندما يتم طلب الملف عن طريق الرقم الذى انتجته الخوارزميه

تدخل على قاعده البيانات ترجع اسم الملف وترسل له للتحميل

Software Developer
Mahmoudkelany.com


 

#7
Mahmoud Kelany كتب:

يمكنك فعل ذلك عن طريق خوارزميه او اى شىء من صنعك

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

عندما يتم طلب الملف عن طريق الرقم الذى انتجته الخوارزميه

تدخل على قاعده البيانات ترجع اسم الملف وترسل له للتحميل

اشكرك على سرعة تجاوبك

1- كيف أتصرف مع تكرار اسماء الملفات في جهاز السيرفر عندما اقوم بتحميلها؟ اعتقد انني لا استطيع فصلها في مجلدات!!!

2- هل بالإمكان اعطاء مثال لعمل صفحة jsp او servlet تقوم بعمل الداونلود ليبدأ التحميل مباشرة؟ لم اعثر على مواضيع في الموقع لطريقة تنزيل الملفات وانما فقط لرفع الملفات!

#8
الـشـاهيـن كتب:

1- كيف أتصرف مع تكرار اسماء الملفات في جهاز السيرفر عندما اقوم بتحميلها؟ اعتقد انني لا استطيع فصلها في مجلدات!!!

أها... أظن بانه من المفترض تسمية الملف بنفس الرمز العشوائي الذي تم توليدة بحيث لايتكرر.

بقيت هذه الجزئية:

الـشـاهيـن كتب:

2- هل بالإمكان اعطاء مثال لعمل صفحة jsp او servlet تقوم بعمل الداونلود ليبدأ التحميل مباشرة؟ لم اعثر على مواضيع في الموقع لطريقة تنزيل الملفات وانما فقط لرفع الملفات!

تم تعديل هذه المشاركة بواسطة الـشـاهيـن في 29 أغسطس 2011 في 01:23

#9

هتدخلى قاعده البيانات عندك

هتشوفى هل الملف دا موجود فى العمود الخاص باسماء الملفات ولا لا ؟

فيه فكره انك تغيرى اسم الملف وتضيفى له مقطع يميزه

او تنقليه داخل مجلد لوحده

دا كله المنطق بتاع الشغل بتاعك

الـشـاهيـن كتب:

أها... أظن بانه من المفترض تسمية الملف بنفس الرمز العشوائي الذي تم توليدة بحيث لايتكرر.

لا اعتقد انه شىء مفيد

الا ف حاله واحده

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

لان المرفوض ان المستخدم رافع ملف اسمه

java book مش يحمل ملف تحت اسم مثلا amaje3763md

اعتقد انها غير منطقيه

Software Developer
Mahmoudkelany.com


 

#10

النقطة دي وضحت تمام. باقي بس كود تنزيل الملف -اذا امكن عدم اعطاء اليوزر أي فرصة لمعرفة مسار الملف أفضل-

الـشـاهيـن كتب:

2- هل بالإمكان اعطاء مثال لعمل صفحة jsp او servlet تقوم بعمل الداونلود ليبدأ التحميل مباشرة؟ لم اعثر على مواضيع في الموقع لطريقة تنزيل الملفات وانما فقط لرفع الملفات!

#11
الـشـاهيـن كتب:

تم التعديل بعدم التخزين في قاعدة البيانات بناء على نصيحة الأخ محمد كيلاني مشكورا

اعتقد انك لستى بحاجه لاى تعديلات فى راس السوال

لان المتابع للموضوع لم يعلم كيفيه اتركيه يقرا الموضوع وهو هيعرف كيف حصل الحل

انما تم الحل ؟؟؟ هيتسال اين تم الحل ولا كيف ؟

ثانيا

محمود كيلانى وليس محمد كيلانى ( دا عمى ) :)

الـشـاهيـن كتب:

النقطة دي وضحت تمام. باقي بس كود تنزيل الملف -اذا امكن عدم اعطاء اليوزر أي فرصة لمعرفة مسار الملف أفضل-

صراحه ليس لدى اى تجربه سابقه فى ذلك

لكن ان كان على التحميل من المسار هذه السهله

لكن انتى تريدين ان تخفى المسار الصحيح وهذا ما تسعين له من خلال النقطه الاولى وهى التوليد العشوائى

فلابد طبعا انك تخفى مسار حفظ الملف

Software Developer
Mahmoudkelany.com


 

#12

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

بقيت جزئية كود التحميل لمن عنده أي فكرة؟!!!

اذا امكنك استاذ محمود وضع طريقة التحميل المعتمدة على مسار الملف لاستفيد منها في حالة لم اجد طريقة أخرى؟

أكرر شكري

#13

الطريقه العاديه

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

مثلا مسار الملف هكذا

uploads/45ff/34/javabook.pdf

دا اسم الملف بالمسار كاملا

او المسار فقط

مش هتفرق المهم لازم يكون معاكى المسار كاملا

اكيد هتحتاجى تفصليهم عن بعض علشان تعرضى مثلا للمستخدم ان الملف اسمه javabook.pdf وحجمه و ...

فطبعا عندك عمود فى قاعده البيانات اسمه path هيكون ف احد حقوله

ولنفترض الصف الاول

path هيكون فيه uploads/45ff/34/

file_name هيكون فيه javabook

عن طريق الاستعلام هتحصلى على الاثنين من قاعده البيانات عادى

وبعدين تخزنيهم ف متغير مثلا

String path ; \\ your path from db
String fileName; \\ your file name from db
String siteURL = "http://www.something.com";
String fullPath  = siteURL + "/" + path + fileName;

هيطلع لك بالشكل دا

www.something.com/uploads/45ff/34/javabook.pdf

بعد كدا داخل صفحه JSP مثلا

هتضعى اللينك داخل href

<a href='<?= fullPath ?>' > download </a>

وبعد كدا هيظهر لك اللينك تضغطى عليه يتم التحميل من المسار المباشر ليه

هيظهر بالشكل التالى بعد عمليه ترجمه صفحه الـ JSP

<a href='http://www.something.com/uploads/45ff/34/javabook.pdf' > download </a>

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 29 أغسطس 2011 في 02:03

Software Developer
Mahmoudkelany.com


 

#14

من قال أن تخزين الملفات على قاعدة البيانات ليس له فائدة؟

بالعكس تخزين البيانات على قاعدة البيانات مفضل في برامج الـ enterprise

أسهل في الـ backup و الـ restore

يمكنك من تنفيد procedure عليها (حتى وإن كانت قاعدة البيانات في الوقت الحالي لا تدعم ذلك لا تعرف ما الحادث في المستقبل)

يمكنك من مراجعة التعديلات عليها

عدا عن أنك تستطيع وضعها ضمن نظام الصلاحيات والتشفير الخاص بك

وبإمكانك في بعض قواعد البيانات من عمل index لها وتمكين الآخرين من البحث فيها

على كل أنا لا أقول بأن وضع الملفات في قاعدة البيانات دائماً هو الحل الأنسب

وإنما أقول كل الحلول متاحة ولا وجود للحل الذي لا فائدة منه بالمطلق وإنما عليك بالقياس trade off

تحياتي

1
حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…