Tôi muốn thực hiện điều tương tự như từ base64 photo and paperclip -Rails, nhưng với Carrierwave. Có ai có thể giải thích cho tôi về việc sử dụng hình ảnh base64 trong Carrierwave không?sử dụng hình ảnh base64 với Carrierwave
5
A
Trả lời
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
Câu trả lời được chấp nhận không hiệu quả đối với tôi (v0.9). Dường như là một kiểm tra không thành công trước khi gọi lại bộ nhớ cache.
thi này hoạt động:
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
Các vấn đề liên quan
- 1. Chuyển đổi hình ảnh base64 thành StringIO cho Carrierwave
- 2. CarrierWave URL Hình ảnh
- 3. Kích thước hình ảnh Carrierwave
- 4. Mã hóa tệp hình ảnh với base64
- 5. Nhúng Hình ảnh Base64
- 6. Tái xử lý hình ảnh trong Carrierwave
- 7. Hình ảnh mã hóa Base64
- 8. Giải mã Hình ảnh Base64
- 9. Lấy chiều cao hình ảnh bằng CarrierWave
- 10. Perl chuyển đổi hình ảnh thành base64
- 11. Tải lên Base64 từ Android/Java tới RoR Carrierwave
- 12. Chuyển chuỗi Base64 thành tệp hình ảnh?
- 13. php imagick - đọc hình ảnh từ base64
- 14. Java - Chuyển đổi hình ảnh sang Base64
- 15. hình ảnh mã hóa/giải mã với hình ảnh ngắt base64
- 16. Tạo lại các phiên bản sử dụng Carrierwave với Ruby
- 17. Thao tác hình ảnh trong NodeJS với dữ liệu hình ảnh base64
- 18. Mất chất lượng hình ảnh PNG sau CarrierWave :: RMagick resize_to_fit
- 19. Sử dụng Carrierwave với một đến nhiều mối quan hệ giữa các mô hình
- 20. Cách lưu chuỗi base64 dưới dạng hình ảnh sử dụng ruby
- 21. chuyển đổi tệp hình ảnh thành chuỗi base64 bằng cách sử dụng javascript
- 22. Node.js base64 mã hóa hình ảnh đã tải xuống để sử dụng trong dữ liệu URI
- 23. Node.JS - Mã hóa hình ảnh trong base64 bằng cách sử dụng bộ đệm
- 24. Carrierwave thêm một watermark để xử lý hình ảnh
- 25. Ưu điểm và nhược điểm khi sử dụng hình ảnh được mã hóa base64
- 26. Carrierwave đa tệp (ảnh) tải lên
- 27. Sử dụng CDN với carrierwave + fog trong s3 + cloudfront với đường ray 3.1
- 28. Force dán kiện để mã hóa hình ảnh trong base64
- 29. Giải mã base64 Phát trực tiếp hình ảnh
- 30. Sử dụng nhiều thùng S3 với đá quý carrierwave
Làm thế nào để tôi lưu các tập tin thông qua bộ điều khiển? Bạn có một mẫu cho điều này không? – fabian