سؤال

لقد واجهت مشكلة مزعجة مع paperclip. يعمل PaperClip بشكل جيد لتحميل ملفات JPG / GIF ولكنها تختنق على ملفات .targa مع الخطأ "غير معترف به من خلال تحديد". فقط للتأكيد، إنها تعمل 100٪ مع ملفات JPG / GIF / PNG ولدي ImageMagick المثبتة والعمل، يحدث هذا الخطأ فقط مع ملفات .tga.

العملية العامة للأوراق هي:

  • يقوم المستخدم بتحميل ملف
  • يتم إنشاء Tempfile تحتوي على محتويات هذا الملف
  • يتم تشغيل الأمر تحديده على tempfile للحصول على عرض / ارتفاع الصورة.

مع ملفات JPG / PNG / GIF، يمكن تحديد تحديد الملفات دون الحاجة إلى امتداد صالح (مثل .jpg) لتكون قادرا على التعرف على نوع الملف. ومع ذلك، عند تحديد ملف .tga، يتطلب امتداد ".tga" في اسم الملف.

المشكلة هي:

عندما يقوم PaperClip بإنشاء ملف TEMP، فإنه ينشئ باسم مشابه ل: stream.0.1. نظرا لأن هذا Tempfile يفتقر إلى ملحق .tga، فإن الأمر التعريف لا يمكن أن تحليل أبعاد الصورة، وبالتالي تسبب "غير معترف به عن طريق تحديد".

لست متأكدا من كيفية الذهاب حول إصلاح هذا، وأفضل فكرة يمكنني التوصل إليه هو استخدام الملف العادي. أمر جديد بدلا من tempfile.new لإنشاء الملف المؤقت مع اسم عشوائي ولكن ملحق الملف الصحيح. سيتطلب ذلك أيضا التصحيح في التعليمات البرمجية المخصصة لإزالة الملفات بعد أن تم معالجة المعالجة بدلا من الاعتماد على قدرة Ruby الخاصة ب Unbielt على حذف Tempfiles بعد الاستخدام.

هل لدى أي شخص بعض الأفكار حول أفضل طريقة يمكن أن أذهب حول إصلاح هذا؟

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

المحلول

كان هذا خطأ في PaperClip وتم إصلاحه. مزيد من التفاصيل يمكن العثور عليها هنا:

http://groups.google.com/group/paperclip-plugin/browse_thread/thread/7fd7a8d7bab696a7.

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