Chcę wykonać podobną rzecz jak z base64 photo and paperclip -Rails, ale z Carrierwave. Czy ktoś mógłby mi wytłumaczyć, używając obrazów base64 w Carrierwave?użyj obrazu base64 z Carrierwave
5
A
Odpowiedz
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
Przyjęta odpowiedź nie sprawdziła się (v0.9). Wygląda na to, że czek nie powiedzie się przed wywołaniem wywołania bufora podręcznego.
Ta implementacja działa:
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
Powiązane problemy
- 1. Rails Carrierwave Base64 upload obrazu
- 2. Konwertuj obraz base64 do StringIO dla Carrierwave
- 3. CarrierWave URL obrazu
- 4. Rozszerzenia obrazu Carrierwave
- 5. Konwersja obrazu do base64
- 6. Zmiana rozmiaru istniejącego obrazu Carrierwave
- 7. Użyj spinacza do zapisywania obrazów base64 uzyskanych z api
- 8. Jak mogę ustawić źródło obrazu z base64
- 9. Wyodrębnij wymiary obrazu z łańcucha Base64
- 10. php imagick - odczyt obrazu z base64
- 11. Dekodowanie danych base64 do obrazu
- 12. BASE64 do obrazu kątowej 2
- 13. Obsługa obrazu w NodeJS z danymi obrazu base64
- 14. szyny redaktora i carrierwave - rozmiary obrazu
- 15. Zmiana rozmiaru obrazu warunkowego za pomocą Carrierwave
- 16. Pobieranie wysokości obrazu za pomocą CarrierWave
- 17. Jak usunąć dane EXIF (kamery) z obrazu za pomocą carrierwave?
- 18. Czy istnieje sposób ustawienia obrazu tła jako obrazu kodowanego base64?
- 19. Typ wejściowy = "plik" zestaw danych obrazu base64
- 20. Wyświetlanie obrazu Internet Explorer i Base64
- 21. Jaki jest limit rozmiaru obrazu DataURL Base64?
- 22. Konwertuj ciąg znaków Base64 na plik obrazu?
- 23. Jak znaleźć szerokość base64 obrazu i wysokość
- 24. Phonegap - Jak wygenerować plik obrazu z łańcucha base64?
- 25. Dane obrazu Base64 nie działa z loadfromJSON w fabricjs
- 26. Jak uzyskać kodowane base64 dane z obrazu html
- 27. kodowanie/dekodowanie obrazu z obrazem base64 zrywa obraz
- 28. JS - pobierz szerokość i wysokość obrazu z kodu base64
- 29. carrierwave: wskaż istniejący obraz
- 30. rspec i carrierwave - jak ustawić adres URL obrazu bezpośrednio (BYPASS carrierwave uploader podczas testowania)
Jak zapisać plik za pośrednictwem sterownika? Czy masz do tego próbkę? – fabian