2010-07-10 14 views
24

Bunu nasıl yüklendiğinde orijinal dosyayı kaydetmek için değil Paperclip anlatır? Veya daha da iyisi, dosyanın ölçeklenmiş halini orijinal olarak saklamak mı? Eğer sadece göç çıkarın eğer o zaman denemek ve kaydedin olmaz,Orijinal dosyayı kaydetmemeye nasıl atabilirim?

+0

Cevabımı inceleyin [here] (http://stackoverflow.com/questions/25467130/rails-4-and-paperclip-stop-the-original-style-file-upload-to -copy-it-from-an/25585186) – laertiades

cevap

43

.

:styles => { :original => '300x168>', :cropped_thumb => {:geometry => "115x70#", :jcrop => true}, ...} 
+0

Müthiş. Teşekkür ederim Chris. Bunu gözden kaçırdığına inanamıyorum. – Jade

+0

güzel bir çözüm! – flunder

+0

Test ettiniz mi? İşe yarıyor? Orijinal etkilerin hepsi başkalarının işleme: – Hamdan

0

Paperclip varsayılan olarak her zaman bir orijinal kaydeder, ancak ben inanıyorum '. Kullanıcıların daha sonra imajlarını düzenleyebilmeniz için

benim modelinde ölçekli orijinali kaydedin. Benim modelim şöyle görünür: ataş bu boyuta orijinal yerine sahip orijinal: Ben sadece için bir stil tanımlayabilirsiniz inanıyoruz

:styles => { :cropped_thumb => {:geometry => "115x70#", :jcrop => true}, :resized_thumb => {:geometry => "115x70>"}, :deal => {:geometry => "64x56#"}, 
:cropped_large => {:geometry => "#{PHOTO_IMAGE_WIDTH}x#{PHOTO_IMAGE_HEIGHT}#", :jcrop => true}, 
:resized_large => {:geometry => "#{PHOTO_IMAGE_WIDTH}x#{PHOTO_IMAGE_HEIGHT}>"}, 

:orig => '300x168>', #this is the scaled original that I call later 


:cropped_orig => {:geometry => '300x168#', :jcrop => true}, 
:resized_orig => {:geometry => '300x168>'} }, 
:processors => [:jcropper] 
+0

Cevabınız için teşekkürler, Yolculuk. – Jade

4

Cris G'nin çözümü en basit durumlarda güzel olabilir, ancak sınırlamaları vardır. tarzı: her şeyden önce başkalarının orijinal Ataş süreci, böylece güncelleştirilmiş sonra: (şimdi çok daha küçük) orijinal resmin işlemeyi aşağıdaki kaynak olacak düşünüyoruz. Bundan dolayı, tutmak zorunda kaldınız: orijinal stili en iyi çözünürlükte. Eğer işlemciye sahip görüntü kırpma gerekir olarak durum daha kötü geliyor: Eğer gerçekten gerçek orijinal kalite için ihtiyaç durumdur.

after_save :reprocess_attach 

private 

def reprocess_attach 
    if self.<atch_name>.present? && Pathname.new(self.<atch_name>.path).exist? 
     self.<atch_name>.save 
     File.unlink(self.<atch_name>.path) 
    end 
end 

o işleme aşamasında ardında ne umursamıyor:)

yüzden çözelti) sen biraz çiğ (modelin her ekleri almak için öğrenmek gerek öneriyoruz. Sadece orijinal dosyayı öldürür)

+0

Sen geometrisini ağır basan, kesinlikle haklısın. Ancak, orijinalinizin daha ayrıntılı bir şekilde yüklenmesini durdurmak için çözümünüzü açıklayabilir misiniz, lütfen kafam karıştı! Teşekkürler! – Sujimichi

+0

@Sujimichi, kaydetmeden sonra, "reprocess_attach", ekin orijinal dosya olarak var olup olmadığını kontrol eder. Eğer varsa, tüm dosyaların dosya sisteminde (kaydet) temizlendiğinden ve orijinal dosyayı sildikten sonra temizlendiğinden emin olun. –

İlgili konular