Как мне основать кодировать двоичный файл (JPG) в ruby - PullRequest
0 голосов
/ 08 июня 2010

У меня есть двоичные файлы, которые необходимо отправить в виде строки в сторонний веб-сервис.Оказывается, для этого требуется, чтобы он был закодирован в base64.

В ruby ​​я использую следующее:

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

тело является сильным, который состоит из набора строк в качестве параметров.*

Это выглядит правильно?(файл загружается в модель Postalcard с помощью скрепки)

Спасибо.

1 Ответ

2 голосов
/ 08 июня 2010

Base64.b64encode распечатывает версию в кодировке Base 64 с длиной 60 символов по умолчанию. Например, если я сделаю

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"
...