2016-07-15 7 views
0

私はエリクサー&フェニックスを新しくしています。私の質問はとても簡単です。 私はこのチュートリアルhttp://www.phoenixframework.org/docs/file-uploadsに従っています。ファイルのアップロード処理中に、それはこの印刷し、コンソールでエリクシルフェニックスウェブフレームワーク - ファイルアップロード

IO.inspect mail_params 

:私のコントローラで は、私はこのラインを持っている私は、私がアクセスできるかを把握しようとしている

%{"file" => %Plug.Upload{content_type: "video/mp4", filename: "video-file.mp4", 
    path: "/var/folders/3p/3trj48456_q0tm2kh8g70qjm0000gn/T//plug-1468/multipart-580463-521117-1"}, 
    "message" => nil, "name" => nil, "phone" => "+1 (111) 111-1111"} 

ファイル名とパスなどの%Plug.Upload構造のデータ。

エリクサーの第一人者は、あなたがそのデータにアクセスするためのいくつかのメソッドを持っているか:)

+1

mail_params ["file"]。filename "と" mail_params ["file"]。 – Dogbert

答えて

2

知っている必要があります。あなたはどちらかのパターンマッチ、それをアウト:

value = %{ 
    "file" => %Plug.Upload{ 
    content_type: "video/mp4", 
    filename: "video-file.mp4", 
    path: "/var/folders/3p/3trj48456_q0tm2kh8g70qjm0000gn/T//plug-1468/multipart-580463-521117-1" 
    }, 
    "message" => nil, 
    "name" => nil, 
    "phone" => "+1 (111) 111-1111" 
} 

%{"file" => struct } = value 
IO.inspect struct.filename #will result in "video-file.mp4" 
IO.inspect struct.path # will result in "/var/folders/3p/3trj48456_q0tm2kh8g70qjm0000gn/T//plug-1468/multipart-580463-521117-1" 

か、基本的にあなたがマップに構造体が入れ子になっていること

IO.inspect value["file"].filename 

ようにそれらにアクセスすることができます。あなたはmap要素に["name"]でアクセスすることができ、構造要素には

+0

ありがとうHaito! –

+0

@DayvanCowboy Np。私の答えを受け入れるように自由に感じてください。 – Haito