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

内容

概要

ファイルのアップロードを行うサンプルです。

初期画面(index.html.erb)
tutorial_uld_1.jpg

サンプルのポイント

・file_fieldメソッドを使用します。

サンプルの使い方

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

ファイル構成

本項で作成するファイル

ファイル名種類
index.html.erbビュー
upload.rbモデル
upload_controller.rbコントローラー

ビュー(画面)

初期画面を作成しましょう。 "ror-tutorial\app\views\upload\index.html.erb"ファイルを以下の内容で作成します。

  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
<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>

コントローラー

"ror-tutorial\app\controllers\upload_controller.rb"ファイルを以下の内容で作成します。

  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
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

添付ファイル: filetutorial_uld_1.jpg 405件 [詳細]

リロード   新規 編集 凍結解除 差分 添付 複製 名前変更   ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: 2012-08-08 (水) 23:25:37 (3197d)