【问题标题】:Elixir Phoenix Web Framework - File uploadElixir Phoenix Web 框架 - 文件上传
【发布时间】:2020-04-19 22:17:27
【问题描述】:

我是 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 结构中的数据,例如文件名和路径。

灵药大师应该知道如何:)

【问题讨论】:

  • mail_params["file"].filenamemail_params["file"].path?

标签: file upload elixir phoenix-framework


【解决方案1】:

您有多种方法可以访问该数据。您可以使用任何一种模式匹配它:

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 访问结构元素

【讨论】:

  • @DayvanCowboy Np。如果您认为合适,请随时接受我的回答。
【解决方案2】:
IO.inspect upload.filename

您可以检查它以了解其结构。使用 upload["yourvalue"].filename 访问它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多