タグ

ブックマーク / nacookan.hatenadiary.org (1)

  • RubyでBase64 - 今日覚えたこと

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

    RubyでBase64 - 今日覚えたこと
    karronoli
    karronoli 2008/02/27
    標準ライブラリをじゃなくてpackでencode/decodeをしたほうがいいらしい。それとウェブ上から見える領域or見えない領域にファイルを置くよりもDBに直接置いたほうが罠が少ないというけど実際どうなんだろ。
  • 1