如何在ruby中对二进制文件(JPG)进行基本编码

时间:2010-06-08 04:40:15

标签: ruby binary base64 paperclip

我有一个二进制文件需要作为字符串发送到第三方Web服务。事实证明它需要它是base64编码。

在ruby中我使用以下内容:

      body = body << Base64.b64encode(IO.read("#{@postalcard.postalimage.path}"))

body是一个强大的,它将一串字符串作为参数。

这看起来不错吗? (使用回形针将文件加载到模型Postalcard中)

感谢。

1 个答案:

答案 0 :(得分:2)

Base64.b64encode默认打印出60个字符长度的基本64位编码版本。例如,如果我愿意的话

Base64.b64encode('StackOverflow')
#=> prints U3RhY2tPdmVyZmxvdw==
#=> returns "U3RhY2tPdmVyZmxvdw==\n"

如果我给它一个长度,让我们说4

Base64.b64encode('StackOverflow', 4)
#=> prints U3Rh
#=> prints Y2tP
#=> prints dmVy
#=> prints Zmxv
#=> prints dw==
#=> returns "U3RhY2tPdmVyZmxvdw==\n"

但是如果你不想将编码的字符串打印到stdout并且只返回它的值,我认为你需要它,那么使用

Base64::encode64('StackOverflow')
#=> "U3RhY2tPdmVyZmxvdw==\n"