![](/img/trans.png)
[英]File attachments for redux-form and elixir/phoenix as backend API (serialization issue)
[英]Elixir Phoenix Web Framework - File upload
我是 Elixir & Phoenix 的新手,我的问题很简单。 我正在关注本教程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
结构中的数据,例如文件名和路径。
Elixir 大师应该知道如何:)
您有多种方法可以访问该数据。 您可以使用模式匹配它:
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
基本上你在地图中有嵌套的结构。 您可以通过 ["name"] 访问地图元素,也可以通过 .notation 访问结构元素
IO.inspect upload.filename
您可以检查它以了解其结构。 使用 upload["yourvalue"].filename 访问它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.