Rails 请问怎么用 CarrierWave 上传 base64 的图片?或者怎么用 rails 把 base64 的字符串转换成图片存储在服务器?

lgor · 2017年11月24日 · 最后由 happybai 回复于 2017年11月24日 · 1500 次阅读

我用 CarrierWave 上传文件能成功,但如果把文件换成 base64 字符串就失败了,下面是我的 uploader 代码

class Base64Uploader < CarrierWave::Uploader::Base

  include CarrierWave::MiniMagick

  storage :file

  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end

  version :thumb do
    process resize_to_fill: [80, 80]
  end

  def extension_whitelist
    %w(jpg jpeg gif png)
  end
end

对应的 model 里面也有写 mount_uploader

mount_uploader :avatar, Base64Uploader 

但是如果把接口的 params[:file] 从文件换成 base64 字符串就无法成功。请问是还有哪里需要配置一下吗?还有就是,ruby 里面可以直接把 base64 字符串转成图片吗? 刚学习 rails 几个月,菜鸟一个。测试搜索了好久,都没有成功,心好累,求指点一下😭

使用before 生成图片 😂

yingce 回复

直接使用他的方法吗?还是不行啊,没有生成图片

base64 string to byte array

lgor 关闭了讨论。 11月25日 11:45
需要 登录 后方可回复, 如果你还没有账号请 注册新账号