Come posso dire a Paperclip di non salvare il file originale quando viene caricato? O ancora meglio, per memorizzare una versione in scala del file come originale?Come posso dire a paperclip di non salvare il file originale?
risposta
Credo che si può semplicemente definire uno stile per: originale per avere graffetta sostituire l'originale con quella dimensione.
:styles => { :original => '300x168>', :cropped_thumb => {:geometry => "115x70#", :jcrop => true}, ...}
Paperclip salva sempre un originale per impostazione predefinita, ma "credo" che, se lo rimuovi dalla migrazione, non tenterà di salvarlo.
Ho salvato un originale ridimensionato sul mio modello in modo che gli utenti possano modificare l'immagine in un secondo momento. Il mio modello è simile al seguente:
: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]
Grazie per la tua risposta, Trip. – Jade
La soluzione di Cris G può essere piacevole nei casi più semplici ma presenta delle limitazioni. considera che: stile: processo Paperclip originale prima di tutti gli altri, quindi dopo quello aggiornato: l'immagine originale (molto più piccola ora) sarà la fonte per la successiva elaborazione. Quindi sei costretto a mantenere: lo stile originale con la risoluzione migliore. La situazione peggiora in quanto è necessario ritagliare le immagini con il processore: questa è la situazione in cui hai davvero bisogno di una vera qualità originale.)
Quindi ti consiglierei un po 'prima (bisogno di trovare il modo di ottenere ogni allegati del modello) Soluzione:
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
che non si preoccupa di quello che l'elaborazione era dietro il palco. Uccide semplicemente il file originale)
Hai assolutamente ragione, ignorando la geometria di: l'originale influisce sull'elaborazione di tutti gli altri. Ma potresti spiegare la tua soluzione per impedire che l'originale venga caricato più dettagliatamente, per favore, sono confuso! Grazie! – Sujimichi
@Sujimichi bene, dopo il salvataggio, il "reprocess_attach" controlla se l'allegato esiste come file originale. Se lo fa, si assicura che tutti i file vengano scaricati nel filesystem (salvataggio) e dopo che cancella il file originale. –
- 1. Rails and Paperclip ... non salvare l'immagine originale, solo gli stili?
- 2. Paperclip - rinominare file prima di salvare
- 3. Salvare i file usando Paperclip senza upload
- 4. Django: come salvare il nome file originale in FileField?
- 5. Come dire a vim di auto-indent prima di salvare
- 6. Con Rails Paperclip gem, come salvare temporaneamente il file caricato se il modello non è valido
- 7. Come salvare un'immagine nel suo formato originale?
- 8. Errore file non trovato Paperclip
- 9. Posso dire a Inno Setup * not * di creare file unins000
- 10. mod_rails e Paperclip problema Paperclip :: NotIdentifiedByImageMagickError
- 11. Graffetta non riuscito a salvare l'allegato
- 12. Come dire a un browser di non offrire di salvare una password errata?
- 13. Come posso salvare un file su MongoDB?
- 14. Scarica file Paperclip come ZIP
- 15. Dire a Python di salvare un file .txt in una determinata directory su Windows e Mac
- 16. @MultipartForm Come ottenere il nome del file originale?
- 17. di file audio Paperclip caricare
- 18. come dire a subclipse di ignorare il file modificato sul commit
- 19. Come faccio a salvare JSON per file di testo locale
- 20. In PyCharm, come posso salvare solo il file corrente?
- 21. Posso dire a Visual Studio come trattare un file con un'estensione di file personalizzata?
- 22. Paperclip non riesce a trovare ImageMagick su AWS Elastic Beanstalk
- 23. Come posso fare in modo che carrierwave non salvi il file originale dopo l'elaborazione delle versioni?
- 24. Come salvare il file usando JFileChooser?
- 25. Paperclip non trova imagemagick
- 26. ritaglio semplice con il Paperclip
- 27. Come posso dire a Poedit di ignorare gli errori di testo non ASCII?
- 28. Come posso dire a clang-format di seguire questa convenzione?
- 29. Come posso dire a CMake di usare Clang su Windows?
- 30. Come copiare un file usando Paperclip
Controlla la mia risposta [qui] (http://stackoverflow.com/questions/25467130/rails-4-and-paperclip-stop-the-original-style-file-upload-to -copy-it-from-an/25585186) – laertiades