プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
Ruby on Rails3、ファイルのアップロード
いろいろ便利な部品はあるようですが
取り合えず基本的なところは押さえておかないとね。

と言う訳でファイルのアップロード方法を調べてみましたよっと。

ふむふむ、なるほど(--)

アップロード画面のビューは例えばこんなんφ(--)

<%= form_tag("hoges/", {:multipart => true}) do |f| %>
    <input name="target_file" type="file" />
    <%= submit_tag("送信", :data => {:disable_with => "Sending..."}) %>
<% end %>

かっこつけてRailsさん用のタグを使ってみましたが
ビューの方の注意点は普通のHTMLと同じですね。
formタグには「enctype="multipart/form-data"」をつけろって感じ。

受け取り側のコントローラは例えばこんなんで良いらしいですφ(--)

f = params[:target_file]
@original_filename = f.original_filename    # ファイル名
@content_type = f.content_type                # Content-Type
@size = f.size                               # ファイルサイズ
@read = f.read                               # ファイルの内容

File.open(Rails.root + 'tmp/files/' + @original_filename, 'wb') do |of|
    of.write(@read)
end

受け取り側も難しくは無さそうですね。
POSTパラメータを取得してあれやこれや。

強いて注意点をあげれば、ファイルに保存するときは
バイナリモードにしたってくださいねってところでしょうか。
最初'wb'ではなく'w'にしたらエンコードの関係かエラーになりました。

完了\(--)/
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:Ruby on Rails  thema:パソコンな日々 - genre:コンピュータ  Posted by ササキマコト 

  関連記事