gpt4 book ai didi

ruby-on-rails - 如何使用 ruby​​ 将 base64 字符串保存为图像

转载 作者:数据小太阳 更新时间:2023-10-29 06:21:36 25 4
gpt4 key购买 nike

我正在将我的 Ruby on Rails 应用与 usps 运输系统集成。一旦您提出邮寄请求,您将支付邮费并且不可退还。

邮寄请求将返回一个 xml 响应,其中包含一个 base64 字符串,即运输标签。

我能够在 View 中呈现运输标签,但是为了使其万无一失,我希望能够将该 base64 字符串作为图像保存在我的服务器上,以防运输标签在生成(付费)和邮寄,这样就可以重印而无需购买新的。

我最初的想法如下

# Attempt 1
File.open('shipping_label.gif', 'w+') {|f|
f.puts Base64.decode64(base_64_encoded_data)
}

# Attempt 2
File.open('shipping_label.gif', 'w+') {|f|
f.puts Base64.decode64(Base64.decode64(base_64_encoded_data))
}

都没有用。

最佳答案

当将二进制数据写入文件时,例如图像的情况,您不能使用像 IO#puts 这样的文本打印工具。

您需要确保两件事:

  • 您需要以二进制模式编写以避免任何可能的 LF 到 CRLF 扩展。
  • 您必须使用 write 而不是 puts 因为 write 可以处理任意数据,但是 puts (字面意思是“put string”)专用于文本。

结合这些你得到:

File.open('shipping_label.gif', 'wb') do |f|
f.write(Base64.decode64(base_64_encoded_data))
end

关于ruby-on-rails - 如何使用 ruby​​ 将 base64 字符串保存为图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1160741/

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