كيفية دمج مشبك الورق وMimetype-fu
-
08-07-2019 - |
سؤال
أولاً، خلفية بسيطة، لأن هناك الكثير من التفاعل الجاري:أقوم باستلام رسائل البريد الإلكتروني عبر برنامج Fetcher، وأقوم بمعالجتها باستخدام MMS2R لاستخراج المرفقات.ستكون هذه المرفقات عمومًا عبارة عن ملفات PDF أو مستندات MS Word، لذا تتوقع أن تكون هذه المرفقات content-type
سيكون application/pdf
و application/msword
على التوالي، ولكن للأسف يبدو أن العديد من برامج البريد لا تفعل ذلك.
بدلا من ذلك، المرفقات هي application/x-pdf
و application/x-doc
.أحتاج إلى ضبطها بشكل صحيح حتى يتمكن scribd-fu من طباعة المستندات بشكل صحيح.الآن، mimetype-fu سيتمكن من اكتشاف نوع المحتوى المناسب، لكن طوال حياتي، يمكنني فقط اكتشاف كيفية ضبط نوع المحتوى الخاص بمرفق مشبك الورق بشكل صحيح.
إليك مقتطف من الكود:
mms.process do |media_type, files|
# go through each file
files.each do |filename|
# if it's a format we support, create a record
if media_type =~ /pdf/ # just pdfs for now, to reduce confusion
File.open(filename) do |tempfile|
# Somewhere in here I'd like to change filename.content_type
# to the proper type using mimetype-fu
# except doing tempfile.content_type = whatever doesn't seem to work.
thing = Thing.new
thing.document = tempfile
thing.save!
end
end
end
end
سيكون موضع تقدير أي مساعدة، لأنني كنت أضرب رأسي بالحائط وأحاول كل أنواع الأشياء لمحاولة تفعيل هذا الأمر.لقد جربت هذه الروابط بالفعل إما دون نجاح أو دون معرفة ما يجب القيام به:
- http://Gist.github.com/55009/
- http://railsforum.com/viewtopic.php?id=27448
- http://github.com/dbackeus/paperclip/commit/a514bd03664fc6a764787f59c3169397336702b1
شكرا جزيلا!
المحلول
يمكنك أن تفعل فقط
thing.document_content_type = whatever
أم أنك تقوم بـ scribd-fu في document= أو شيء من هذا القبيل؟