[Java] أفضل طريقة لتحميل ملفات متعددة من المتصفح


Answers

أنا لم تستخدم أبدا مع الملفات من 2GB في الحجم، ولكن يوي ملف رافع عملت بشكل جيد جدا على مشروع سابق. قد تكون مهتمة أيضا في هذا البرنامج المساعد مسج .

وقال هذا، ما زلت أعتقد جافا التطبيق هو الطريق للذهاب. أعتقد أنك سوف ينتهي الأمر مع أقل قابلية وقضايا واجهة المستخدم مما كنت تتوقع وسحب / قطرة يعمل كبيرة. للسجل، يستخدم Box.net جافا أبليت لتحميلات متعددة الملفات السريعة.

Question

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

تحميل ملف هتمل الكلاسيكي ليس كبيرا لأنه يمكنك فقط تحديد ملف واحد في وقت واحد، وأنه من الصعب جدا للحصول على أي مؤشر التقدم أثناء التحميل الفعلي (وأخيرا حصلت عليه باستخدام جهاز توقيت منعش مؤشر التقدم مع البيانات المنبثقة من الخادم عبر مكالمة أجاكس). ميزة: انها تعمل دائما.

مع التطبيق جافا يمكن أن أفعل المزيد من الأشياء: حدد ملفات متعددة في آن واحد (حتى مجلد)، ضغط الملفات، والحصول على شريط التقدم الحقيقي، drag'n'drop الملفات على التطبيق الصغير، الخ ...
ولكن هناك بعض العيوب:

  • انها كابوس للحصول عليه للعمل بشكل صحيح على ماك سفاري وماك فيريفوكس (شكرا ليفيكونكت)
  • واجهة المستخدم ليست بالضبط واجهة المستخدم الأصلي وبعض الناس لاحظ ذلك
  • التطبيق الصغير ليست استجابة كما ينبغي (يمكن أن يكون خطأي، ولكن كل شيء يبدو طيب بالنسبة لي)
  • هناك أخطاء في فئة جافا UrlConnection مع هتبس، لذلك يمكنني استخدام عميل هتب شائع أباتشي للقيام بتحميل هتب الفعلي. انها كبيرة جدا حزمة ويبطئ تحميل ملف .jar
  • فإن عميل هتب المشترك في أباتشي يواجه مشكلة في بعض الأحيان من خلال الوكلاء
  • وقت تشغيل جافا كبير جدا

لقد تم الحفاظ على هذا التطبيق جافا لفترة من الوقت ولكن الآن أنا سئمت مع كل العيوب، والنظر في الكتابة / شراء عنصر جديد تماما لتحميل أطروحات الملفات.

سؤال

إذا كان لديك المتطلبات التالية:

  • تحميل ملفات متعددة بسهولة من المتصفح، من خلال هتب أو هتبس
  • ضغط الملفات لتقليل وقت التحميل
  • تحميل يجب أن تعمل على أي منصة، مع واجهة المستخدم الأصلية
  • يجب أن تكون قادرة على تحميل ملفات ضخمة، وتصل إلى 2gb على الأقل
  • لديك بلانش على التكنولوجيا

ما التكنولوجيا / كومبوننت التي ستستخدمها؟

تصحيح :

  • Drag'n'Drop من الملفات على المكون سيكون زائد كبيرة.
  • يبدو أن هناك الكثير من القضايا المتعلقة البق مع فلاش لاعب ( سوفوفلود المعروفة القضايا ). دعم ماك السليم وتحميل من خلال وكلاء مع المصادقة هي خيارات لا أستطيع الاستغناء عنها. من المحتمل أن يستبعد كل الخيارات المستندة إلى فلاش :-(.
  • أستبعد جميع خيارات هتمل / جافاسكريبت فقط لأنك لا تستطيع تحديد أكثر من ملف واحد في كل مرة باستخدام عنصر تحكم هتمل الكلاسيكي. انها الألم للنقر n- مرات زر "تصفح" عندما تريد تحديد ملفات متعددة في مجلد.



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




أسهل طريقة لتحميل الملف في جافا هو مكتبة GOJFileUpload.jar

هنا هو غوجفيلوبلواد مكتبة تعليمي:

GOJFileUpload

أنها تعطي اثنين من الطريقة

  • أوبلودفيل (سلسلة فيليباث، أريليست إيماجينامس، طلب هتبركست)
  • أوبلودفيل (سلسلة فيليباث، أريليست داتانام، أريليست إيماجينامس، طلب هتبركست)

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







هناك عدد من مكونات فلاش الحرة التي توجد مع لطيفة متعددة تحميل ملف القدرة. أنها تستخدم فئة أكتيونسكريبتس فليريفيرانس مع فب (أو أيا كان) المتلقي على جانب الملقم. بعض كسر مؤخرا مع إطلاق FP10 ولكن أنا أعرف على وجه اليقين أن سوف سوفلود العمل :)

أتمنى أن يساعدك هذا!