回形針默認嘗試處理每個圖像文件以生成縮略圖。但它也試圖用pdf文件來完成,這可能是非常耗時的任務。我試着在谷歌上找到一個解決方案,但它改變了Paperclip方法。如何在Paperclip中禁用PDF文件的後處理?
如何在不改變回形針來源的情況下禁用回形針中的pdf後處理?
回形針默認嘗試處理每個圖像文件以生成縮略圖。但它也試圖用pdf文件來完成,這可能是非常耗時的任務。我試着在谷歌上找到一個解決方案,但它改變了Paperclip方法。如何在Paperclip中禁用PDF文件的後處理?
如何在不改變回形針來源的情況下禁用回形針中的pdf後處理?
從我目前的生產應用程序,與上述類似,但明確地查找圖像(在這種情況下,我上傳幾乎可以接受任何類型的文件,所以我只處理圖像,而忽略其他所有):
before_post_process :is_image?
def is_image?
["image/jpeg", "image/pjpeg", "image/png", "image/x-png", "image/gif"].include?(self.asset_content_type)
end
一種解決方案是使用before_post_process
回調:
# Model with has_attached_file
before_post_process :forbid_pdf # should be placed after line with has_attached_file
private
def forbid_pdf
return false if (data_content_type =~ /application\/.*pdf/)
end
data_content_type
應改爲模型中的相應字段。
我想出的另一個解決方案是爲圖像創建自定義處理器,我們應該在其中檢查文件類型,如果它不是pdf,則運行標準處理器Paperclip::Thumbnail
。
你可以用一個單行解決這個問題:
before_post_process { avatar_content_type.match? %r{\Aimage\/.*\z} }
不要忘記你的屬性來代替avatar
(如:receipt_content_type
)。
嗨託比,你把這個代碼放在哪裏?謝謝。 – sscirrus
在模型中,iirc –