gpt4 book ai didi

ios - Paperclip 使用 base64 照片抛出 NoHandlerError

转载 作者:行者123 更新时间:2023-11-29 04:16:45 24 4
gpt4 key购买 nike

从回形针 2 升级到回形针 3 时,我的图像上传 API 停止运行。此代码曾经有效:

def decode_cover_image_data(cover_image_data)
data = StringIO.new(Base64.decode64(cover_image_data))
data.class.class_eval { attr_accessor :original_filename, :content_type }
data.original_filename = "cover.png"
data.content_type = "image/png"

self.photo = data
end

它现在引发 NoHandleError 异常:

"Paperclip::AdapterRegistry::NoHandlerError (No handler found for "/9j/4AAQD/4Q[...]wooooGf/9k="

有人遇到过这个问题吗?

谢谢

最佳答案

我找到了问题的根源,这很愚蠢......

在我的 Controller 更新方法中,我有类似的内容:

  def update
...
if p[:photo]
@user_ipad.decode_cover_image_data(p[:photo])
end

unless @user_ipad.update_attributes(p)
render :json => {:errors => @user_ipad.errors}
end
end

问题是我设置了用户照片两次:

  • 进入@user_ipad.decode_cover_image_data(p[:photo])
  • 进入@user_ipad.update_attributes(p)

使用 update_attributes 保存 Base64 字符串(仍在参数中)时发生崩溃。实际上令我惊讶的是这段代码适用于 Paperclip 2.4.5 ...

升级到 Paperclip 3.3.1 后,我通过用以下替换更新方法解决了我的问题:

  def update
...
if p[:photo]
p[:photo] = @user_ipad.decode_cover_image_data(p[:photo])
end

unless @user_ipad.update_attributes(p)
render :json => {:errors => @user_ipad.errors}
end
end

关于ios - Paperclip 使用 base64 照片抛出 NoHandlerError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13588403/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com