我有一个二进制文件需要作为字符串发送到第三方Web服务。事实证明它需要它是base64编码。
在ruby中我使用以下内容:
body = body << Base64.b64encode(IO.read("#{@postalcard.postalimage.path}"))
body是一个强大的,它将一串字符串作为参数。
这看起来不错吗? (使用回形针将文件加载到模型Postalcard中)
感谢。
答案 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"