سؤال

نحن نستخدم Mantis BugTracker (الإصدار 1.1.8)، والتي تعتمد على PHP. لتخفيف سير عمل إضافة الأخطاء، نود إضافة خيار لصق لقطات الشاشة من الحافظة مباشرة في "نموذج الأخطاء الجديد".

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

لقد نظرت في كل مكان لإضافة هذا، ولكن لا حظ. كيف يفعل الآخرون هذا؟ هل أفتقد شيئا واضحا؟

تعديل: BugTracker هو خاص واحد، في شركة صغيرة، لذلك سأكون على استعداد لقبول مخاطر الأمان على سبيل المثال تطبيقات Java الموجودة.

هل كانت مفيدة؟

المحلول 3

لقد تمكنت من بناء الحل الخاص الذي يعمل بشكل جيد للغاية. يضع تطبيق تحميل ملف Java على الصفحات حيث تريد إرفاق لقطة شاشة. التطبيق الصغير له زران:

  1. "لصق لقطة الشاشة"، التي يلصق صورة من الحافظة في التطبيق الصغير
  2. "تحميل لقطة شاشة"، والتي تقوم بتحميل الصورة التي تم لصقها إلى Dir TMP على خادم Mantis وتستخدم رد اتصال JavaScript لوضع اسم الملف البحري للصورة التي تم تحميلها في حقل نموذج.

بمجرد تقديم النموذج، يستخدم وظيفة جديدة في Mantis اسم الملف في حقل النموذج لنقل الصورة من / TMP إلى الموقع النهائي ويعالج الصورة تماما مثل المرفقات الأخرى. إذا لم يتم تقديم النموذج أبدا، فإن الملف الذي تم تحميله يبقى في / tmp وسيتم تطهيره في النهاية بواسطة الخادم.

إنه يعمل بشكل جيد، ولكن لديه عيب واحد لا يمكنني تجنبه: أنا أستخدم Java للوصول إلى حافظة العميل، ولكن هذا يتطلب كسر مربع الرمل JVM. على ما يبدو، يمكن القيام بذلك إذا قمت بالتوقيع رقميا على التطبيق الصغير، الأمر الذي يتطلب دفعة سنوية مكلفة إلى حد ما (شيء مثل 500 دولار) لشركة مثل Verisign (خيارات مجانية حاليا مثل Cacert.org لا تزال محدودة في فائدتها).

هناك طريقة أخرى للسماح باستخدام Java Applets الوصول إلى الحافظة هي إنشاء ملف يسمى .java.policy في دليل منزلك أو ملف التعريف. يجب أن يحتوي هذا الملف على ما يلي (استبدل المجال بالمجال الذي يستضيف تطبيق Java Applet الخاص بك):

grant codeBase "http://bugs.example.com/-" {
  permission java.awt.AWTPermission "accessClipboard";
};

لحسن الحظ، الحل عبر المستعرض المتوافق متوافقا لأن JVM يتحقق دائما من نفس الملف بغض النظر عن المستعرض المستخدم. نظرا لأن الحل الخاص بي يتطلب وجود ملف .java.policy على كل جهاز كمبيوتر عميل لا أعتبره مثاليا، لكنه عمياء في بيئة شركة خاضعة للرقابة.

نصائح أخرى

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

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

يوجد تطبيق Java Attacher Attacher Rolor N Dract N Priclet ل Confluence Atlassian الذي يحتوي على الوظيفة التي تحتاجها. إنه يدعم التقاء فقط ولكن نظرا لأن المصارعة متوفرة بحرية تحت BSD، يجب أن تكون قادرا على تخصيصها لاحتياجاتك.

نسيت الرابط:http://confluence.atlassian.com/display/confext/drag+and+drop+image+Actacher+Plugin.

نظرت إلى هذا أيضا. لا بطريقة سهلة حقيقية، لذلك بدلا من ذلك، سمحت لهم بتحميل عدد غير محدود من الملفات، وسيتم بعد ذلك "المرفقة" على هذا الخطأ. اتضح بالفعل أنه أفضل لأنه يمكن تحميل لقطة الشاشة وجداول البيانات ومستندات Word، إلخ.

مثل لك، هذا هو موقع داخلي فقط الأمان حتى يكون الأمان خفيفا. فعلت هذا في ASP.NET، لكن الفكرة العامة هي أنه عندما ينظرون إلى صفحة لعلة لديهم مربع تحميل لديهم. عند تحميل شيء ما يمكنني إلحاق به مع معرف الخطأ. so screenshot.jpg تصبح 233_screenshot.jpg.

أيضا في تلك الصفحة هي شبكة (GRIDVIEW) التي لا بد أن جميع أسماء الملفات في دليل التحميل الخاص بي الذي يبدأ مع معرف الخطأ هذا.

لمعرفة ما يبدو هذا انقر هنا.

للمستخدمين الموجهين التكنولوجيين، هناك دائما إمكانية استخدام كسوف + mylyn. + موصل mylyn-mantis.

ثم تحميل Screeshots سهل للغاية:

Screenshot تحميل http://img216.imageshack.us/img216/246/screenshotachments1.png.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top