2016-07-15 9 views
0

Ich bin neu in Elixir & Phoenix, und meine Frage ist sehr einfach. Ich folge diesem Tutorial http://www.phoenixframework.org/docs/file-uploads. In meinem Controller, habe ich diese Zeile:Elixir Phoenix Web Framework - Datei-Upload

IO.inspect mail_params 

in der Konsole während des Datei-Upload-Prozess, druckt es dies:

%{"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"} 

Ich versuche, herauszufinden, wie ich den Zugriff auf Daten in %Plug.Upload Struktur wie Dateiname und Pfad.

Elixir Guru sollte wissen, wie :)

+1

'mail_params [" Datei "] .filename' und' mail_params ["Datei"] .pfad'? – Dogbert

Antwort

2

Sie mehrere Methoden, die Daten zuzugreifen. Sie können entweder Muster Spiel es aus:

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" 

oder Sie können auf sie zugreifen, wie die

IO.inspect value["file"].filename 

Grundsätzlich Sie dort Struktur in einer Karte verschachtelt sind. Sie können auf Map-Elemente über ["name"] zugreifen und Sie können auf Strukturelemente zugreifen, indem Sie .notation

+0

vielen Dank, Haito! –

+0

@DayvanCowboy Np. Fühlen Sie sich frei, meine Antwort zu akzeptieren, wenn Sie es für richtig halten. – Haito

Verwandte Themen