2016年9月29日木曜日

「Phoenix」フレームワークでファイルのアップロード

Phoenix」フレームワークでファイルのアップロードです。Rails に似て、洗練されたシンプルなソースコード。美しい(笑)!

/web/templates/user/form.html.eex(multipart 設定して、入力にfile形式を指定)
<%= form_for @changeset, @action, [multipart: true], fn f -> %>
  <div class="form-group">
    <label>写真</label>
    <%= file_input f, :photo, class: "form-control" %>
  </div>
  <div class="form-group">
    <%= submit "登録", class: "btn btn-primary" %>
  </div>
<% end %>
/web/controllers/user_controller.ex
  def update(conn, %{"id" => id, "user" => user_params}) do

    IO.inspect user_params
    if upload = user_params["photo"] do
      extension = Path.extname(upload.filename)
      File.cp(upload.path, "/var/www/html/uploads/user-#{user.id}#{extension}")
    end

  end

参考サイト
File Uploads(Phoenix)
IO(Elixir)
Path(Elixir)
File(Elixir)

0 件のコメント:

コメントを投稿