Top > Ruby on Railsあれこれ > アップロード
#freeze
#contents

* 内容 [#j57ebe9c]

** 概要 [#nbe65419]
ファイルのアップロードを行うサンプルです。

初期画面(index.html.erb)&br;
&ref(tutorial_uld_1.jpg);&br;

** サンプルのポイント [#o736b9f3]
・file_fieldメソッドを使用します。

** サンプルの使い方 [#j63eab78]
サンプルはあらかじめ用意していないので、以降の項目を参照にして、自分で作成しなければいけません。作成後に、ブラウザからhttp://127.0.0.1:3000/uploadにアクセスしましょう(ポート番号"3000"は適宜、環境に応じて読み替えて下さい)。

** ファイル構成 [#a8f3bc50]
本項で作成するファイル&br;
|ファイル名|種類|h
|index.html.erb|ビュー|
|upload.rb|モデル|
|upload_controller.rb|コントローラー|

** ビュー(画面) [#ff9caa39]
初期画面を作成しましょう。
"ror-tutorial\app\views\upload\index.html.erb"ファイルを以下の内容で作成します。
#code(ruby){{
<html>
<head>
<title>Tutorial: Upload</title>
<%= stylesheet_link_tag 'ror' %>
</head>
<body>
  <h2>Tutorial: Upload</h2>
  <% form_tag({:action => 'upload'}, {:multipart => true}) do %>
    <%= file_field "file", "formFile", "size" => 60 %>
    <%= submit_tag "アップロード" %>
  <% end %>
</body>
</html>
}}

** コントローラー [#xb82476a]
"ror-tutorial\app\controllers\upload_controller.rb"ファイルを以下の内容で作成します。
#code(ruby){{
class UploadController < ApplicationController
  
  #入力画面表示
  def index
    render :action => 'index.html.erb'
  end
  
  #ファイルアップロード処理
  #アップロードされたファイルは、/public/images/にコピーします。
  def upload
    
    file = params[:file][:formFile]
    
    File.open("public/images/#{file.original_filename}", "wb"){ |f| f.write(file.read) }
    render :action => 'index.html.erb'
  end
  
end
}}

    ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS