Voglio eseguire la cosa simile a partire da base64 photo and paperclip -Rails, ma con Carrierwave. Qualcuno potrebbe spiegarmi l'uso di immagini base64 in Carrierwave?usa l'immagine base64 con Carrierwave
5
A
risposta
6
class ImageUploader < CarrierWave::Uploader::Base
class FilelessIO < StringIO
attr_accessor :original_filename
attr_accessor :content_type
end
before :cache, :convert_base64
def convert_base64(file)
if file.respond_to?(:original_filename) &&
file.original_filename.match(/^base64:/)
fname = file.original_filename.gsub(/^base64:/, '')
ctype = file.content_type
decoded = Base64.decode64(file.read)
file.file.tempfile.close!
decoded = FilelessIO.new(decoded)
decoded.original_filename = fname
decoded.content_type = ctype
file.__send__ :file=, decoded
end
file
end
1
La risposta accettata non ha funzionato per me (v0.9). Sembra essere un controllo che fallisce prima della richiamata della cache.
Questa implementazione funziona:
class ImageUploader < CarrierWave::Uploader::Base
# Mimick an UploadedFile.
class FilelessIO < StringIO
attr_accessor :original_filename
attr_accessor :content_type
end
# Param must be a hash with to 'base64_contents' and 'filename'.
def cache!(file)
if file.respond_to?(:has_key?) && file.has_key?(:base64_contents) && file.has_key?(:filename)
local_file = FilelessIO.new(Base64.decode64(file[:base64_contents]))
local_file.original_filename = file[:filename]
extension = File.extname(file[:filename])[1..-1]
local_file.content_type = Mime::Type.lookup_by_extension(extension).to_s
super(local_file)
else
super(file)
end
end
end
Problemi correlati
- 1. Rails Carrierwave Base64 caricamento immagine
- 2. Converte l'immagine base64 in StringIO per Carrierwave
- 3. Usa un'immagine di base64 più volte
- 4. Problemi con Carrierwave: conversione
- 5. Usa CDN con carrierwave + fog in s3 + cloudfront con rail 3.1
- 6. Recupero dell'altezza dell'immagine con CarrierWave
- 7. Ridimensionamento condizionale dell'immagine con Carrierwave
- 8. Usa immagine svg base64 come origine contenuto css
- 9. Come inviare file all'utente con carrierwave?
- 10. Ricrea le versioni utilizzando Carrierwave con Ruby
- 11. Tipi di file misti con CarrierWave
- 12. Rails 3 dispositivi di prova con carrierwave?
- 13. file jQuery carico con rails carrierwave/s3
- 14. Rinominare i file caricati con Carrierwave
- 15. Impostazione messaggio di errore personalizzato con CarrierWave
- 16. Papertrail e Carrierwave
- 17. Estensioni immagine Carrierwave
- 18. rspec testing carrierwave - newbie
- 19. Dimensione immagine Carrierwave
- 20. carrierwave content_type sempre nil
- 21. campi aggiuntivi in CarrierWave Uploader
- 22. indefinito Metodo Scala In CarrierWave
- 23. File temporaneo Carrierwave senza modello
- 24. Rinominare i file CarrierWave esistenti
- 25. Rielaborazione di immagini in Carrierwave
- 26. Codifica di un file immagine con base64
- 27. rendering di un Base64 PNG con espresso
- 28. Mostra video BASE64 con nodo/espresso
- 29. Ottieni l'immagine base64 con reader.readAsArrayBuffer (file)
- 30. convertire stringa base64 per un'immagine con javascript
Come ho salvare il file tramite il controllore? Hai un campione anche per questo? – fabian