タグ

base64に関するtoshi3221のブックマーク (3)

  • PHPにPOSTでBase64の文字列を渡すときは注意 - フタなしカンヅメ

    RubyのZlibで圧縮したデータをBase64にして、PHPのスクリプトにPOSTで渡すってことをやっていたのですが、圧縮データを展開できる時と、できない時があって悩んでしまった。 よくよく調べると、そもそもBase64をデコード出来ていなかった。それで調べてみると、PHPのドキュメントの下に書いてありました。 PHP: base64_decode - Manual どうやら、POSTでデータを渡すと、Base64の「+」記号が勝手にスペースに変換されてしまうらしい。 以下のように修正したところ無事に動きました。 ## str_replace でスペースを+に置換 $data = base64_decode(str_replace(' ', '+', $data)); ## ヘッダ分を差し引いてあげないとだめなのね・・・ $_data = gzinflate(substr($data,

    PHPにPOSTでBase64の文字列を渡すときは注意 - フタなしカンヅメ
    toshi3221
    toshi3221 2010/11/09
    気をつけよう
  • プログラミング言語 Ruby リファレンスマニュアル

    注: Rubyは2.1.0からSemantic Versioningを採用しています。 Ruby 2.1.1, 2.1.2等はバグ修正やセキュリティfixのみを含むため、リファレンスとしては2.1に統一しています。

    toshi3221
    toshi3221 2010/11/09
    Array.pack('m')は60オクテット毎と最後に改行コードが付加されるらしい。正直邪魔
  • RubyでBase64 - 今日覚えたこと

    Rubyでファイルアップローダおよびダウンローダを作った。ブラウザからファイルを投稿して、DBに保存して、あとでダウンロードできるやつ。 ファイル実体をファイルシステムに保存するのではなく、DBに入れる。Webから見える領域に置いてそのままダウンロードしたり、Webから見えない領域に置いてプログラム経由でダウンロードさせる方式は、簡単そうに見えて、罠が多い。DBに入れてプログラム経由でダウンロードさせるのが結果的に一番簡単だと思う。 通常バイナリデータをDBに入れるときははBLOB型のカラムを使うと思うけど、今回はRuby/MySQLを使っていることもあり (PreparedStatementが使えない)、文字列だけのSQLでやる必要がある。 そこで、バイナリデータをBase64でエンコードし、LONGTEXT型のカラムに入れることにした。もちろん、ダウンロードの際は取り出したテキストデー

    RubyでBase64 - 今日覚えたこと
    toshi3221
    toshi3221 2010/11/08
    String.pack('m')/unpack('m')[0]なだけ。だが忘れる。
  • 1