【问题标题】:Save image file to database in Rails在 Rails 中将图像文件保存到数据库
【发布时间】:2015-05-30 22:13:38
【问题描述】:

我需要将图像从文件保存到 PostgreSQL 数据库作为二进制文件。尝试这样做:

image_file = File.open("image.png", "rb") { |file| file.read }
Image.create(product_id: product_id, image: image_file)

这段代码给了我以下错误:

string contains null byte

使用回形针或类似工具,或将二进制转换为 base64 不是一种选择。

【问题讨论】:

  • 数据库中列的类型是什么?检查此链接:stackoverflow.com/questions/4386030/…
  • 二进制。更改列类型也不是一种选择
  • 哪条线失败了?读取文件还是将其保存到数据库中?

标签: ruby-on-rails ruby image binary


【解决方案1】:

如果可以,请尝试向我们提供更多信息。我知道 Rails 最近有一个 PR,它修复了 PostgreSQL 中更多多余的 bytea 转义。因此,请务必尝试更新您的系统,看看是否有帮助。如果没有,请在可能的情况下向我们提供更多信息。

Here's a link to the PR

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-11
    • 1970-01-01
    • 2020-12-17
    • 1970-01-01
    • 1970-01-01
    • 2012-01-18
    • 1970-01-01
    相关资源
    最近更新 更多