rails6 ファイルを指定したディレクトリにアップする
rails6でファイルを指定したディレクトリにアップするまでの手順を記述してます。Railsのバージョンは6.1.1を使用してます。
環境
- OS CentOS Linux release 7.9.2009 (Core)
- Ruby 2.7.2
- Rails 6.1.1
- rbenv 1.1.2-40-g62d7798
controller作成
まずは、「disp」という名前でcontrollerを作成します。
rails g controller disp
「app/controllers」配下に「disp_controller.rb」が作成されます。
view作成
「app/views/disp」配下に「index.html.erb」を作成します。
ファイルアップロード
ファイルをアップロードするため「index.html.erb」を以下のように編集します。
<%= form_with url: { controller: "disp", action: "index" } do |f| %>
<%= f.file_field :upload_file %>
<%= f.submit "送信" %>
<% end %>
「disp_controller.rb」側で受け取ったパラメーターからディレクトリを指定して、ファイルをアップロードします。。
class DispController < ApplicationController
def index
if !params[:upload_file].blank?
file = params[:upload_file]
path = Rails.root.join("public", file.original_filename)
File.open(path, "w+b") do |fp|
fp.write uploaded_file.read
end
end
end
end
「config」配下にある「routes.rb」にも以下を追加しておきます。
post "disp", to: "disp#index"
これでrailsを起動すると
rails s
ブラウザから http://localhost:3000/disp にアクセスして、postを行うとアップしたファイルが「public」ディレクトリ配下に保存されていることが確認できます。
-
前の記事
MySQL べき乗を求める 2021.12.19
-
次の記事
SourceTree 文字コードを指定する 2021.12.19
コメントを書く