2011-08-30 8 views
7

मैं छवियों को अपलोड करने carrierwave और mini_magick का उपयोग करें। विकास में सब ठीक है, लेकिन उत्पादन में यह FloatDomainError (Infinity) उठाता है जब मैं एक छवि अपलोड करने का प्रयास करता हूं। मेरे पास एक ही सर्वर पर होस्ट की गई कई परियोजनाएं हैं और सबकुछ अपलोड करने के साथ ठीक है। मैं रेल 3.0.10 का उपयोग करता हूं। कोई विचार मैं इसे कैसे ठीक कर सकता हूं? धन्यवादFloatDomainError (इन्फिनिटी)

उत्तर

10

मुझे एक ही समस्या थी। समस्या mini_magick है। यदि छवि फ़ाइल identify पर चलती है तो गलत है, पहचान किसी प्रकार की त्रुटि आउटपुट करेगी, उदा।

identify: Corrupt JPEG data: 7929 extraneous bytes before marker 0xed `image.jpg' @ warning/jpeg.c/EmitMessage/230. 
11811 8665 

mini_magick आयाम के रूप में त्रुटि संदेश को पार्स करने की कोशिश करता है, और परिणाम 0 है। इसका परिणाम शून्य से एक विभाजन में होता है जिसके परिणामस्वरूप आपके द्वारा उल्लिखित अपवाद होता है। यही कारण है कि यह केवल कुछ छवियों के साथ विफल रहता है।

identify एक -quiet विकल्प इन चेतावनी संदेश बंद करने के लिए है। मैंने https://github.com/fschwahn/mini_magick पर mini_magick को फोर्क किया है और शांत विकल्प जोड़ा है। मुझे आशा है कि यह परिवर्तन खींचा जाएगा (या समस्या को और अधिक सुरुचिपूर्ण तरीके से तय किया जाएगा)। हालांकि, अभी तुम मेरे कांटा अपने Gemfile के लिए निम्न जोड़कर उपयोग कर सकते हैं:

gem 'mini_magick', :git => 'git://github.com/fschwahn/mini_magick.git' 
+0

आपके उत्तर के लिए धन्यवाद। अपने कांटा Asap कोशिश करेंगे। वर्तमान परियोजनाओं में मैंने इसके बजाय rmagick का उपयोग शुरू किया। –

+1

मेरे परिवर्तन खींचे गए हैं और mini_magick का एक नया संस्करण जारी किया गया है, इसलिए यदि आप mini_magick के नवीनतम संस्करण पर निर्भर करते हैं तो समस्याएं दूर होनी चाहिए। – fabi

+0

धन्यवाद। जैसे ही मुझे चाहिए, मैं इसे कोशिश करूंगा =) –

1

फिक्स्ड resize_and_pad करने के लिए resize_and_fill की जगह के साथ कि। अभी भी अपने अजीब व्यवहार को समझ में नहीं आता है।

+0

वास्तव में 'resize_to_fill' और resize_and_pad' के अलग-अलग प्रभाव हैं। एक दूसरे के साथ प्रतिस्थापित करना सिर्फ आपके आवेदन को किसी भी कीमत पर चलाने का एक तरीका है। –

+0

सहमत हैं। यह काम करने के लिए सिर्फ एक अस्थायी समाधान था। आशा है कि @ fabi का समाधान अब काम करता है –

0

मैं नवीनतम मणि अद्यतन साथ यह त्रुटि आई, जब मैं अपने pdf फ़ाइल के लिए एक छवि थंबनेल उत्पन्न।

इस कोड में विफल रहता है:

version :thumb do 
    process :resize_to_fill => [260, 192] 
    process :convert => :png 
    process :set_content_type 
    process :thumbnail_pdf 
end 

मैं लाइनों के आदेश को बदल कर इसे हल। कुंजी यह थी कि MiniMagic का आकार बदलने से पहले पहले थंबनेल को छवि में परिवर्तित करना चाहिए और उसके बाद आकार बदलने का प्रयास करना चाहिए।

यहाँ समाधान जो मेरे लिए काम किया है। शायद यह किसी के लिए मदद करेगा।

process :convert => :png 
    process :resize_to_fill => [260, 192] 
संबंधित मुद्दे