Quiero realizar lo mismo que desde base64 photo and paperclip -Rails, pero con Carrierwave. ¿Alguien podría explicarme el uso de imágenes base64 en Carrierwave?use imagen base64 con Carrierwave
5
A
Respuesta
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 respuesta aceptada no funcionó para mí (v0.9). Parece ser una comprobación que falla antes de la devolución de llamada de caché.
Esta aplicación funciona:
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
Cuestiones relacionadas
- 1. Carga de Base64 de Android/Java a RoR Carrierwave
- 2. Imagen de codificación Base64
- 3. CarrierWave URL de la imagen
- 4. Dimensión de la imagen Carrierwave
- 5. convertir cadena base64 a imagen con javascript
- 6. gwt base64 imagen
- 7. Decodificación Base64 Imagen
- 8. Problemas con Carrierwave: convertir
- 9. Perl convertir la imagen a base64
- 10. obtener imagen de base64 cadena
- 11. Recuperación de la altura de la imagen con CarrierWave
- 12. Carrierwave carga con formularios anidados?
- 13. versiones/proceso con Carrierwave
- 14. Codificación de un archivo de imagen con base64
- 15. cómo convertir una imagen en cadena base64
- 16. Enviar/Mostrar una imagen codificada en base64
- 17. Tipos de archivos mezclados con CarrierWave
- 18. ¿Cómo convertir una imagen a codificación base64?
- 19. ¿Cómo leo una imagen base64 en WPF?
- 20. Convertir una imagen a base64 y viceversa
- 21. tamaño de imagen codificada en base64
- 22. Convertir base64 Cadena en imagen en Android
- 23. Renombrar archivos cargados con Carrierwave
- 24. Rails 3 accesorios de prueba con carrierwave?
- 25. carrierwave + mini_magick gemas = no una imagen de error
- 26. Con Carrierwave and Rails 3, ¿es posible administrar fácilmente archivos de imagen y sin imagen con el mismo cargador?
- 27. fileupload jQuery con rieles carrierwave/s3
- 28. Use una imagen como el separador UITableView
- 29. prueba rspec carrierwave - newbie
- 30. Pantalla de imagen de Internet Explorer y Base64
Cómo guardo el archivo a través del controlador? ¿Tienes una muestra para esto también? – fabian