gpt4 book ai didi

elixir - 如何使用 Plug.Upload?

转载 作者:行者123 更新时间:2023-12-03 14:16:57 30 4
gpt4 key购买 nike

我想用 Plug.Upload在我的一个路由器中,上面没有任何库或框架,但这里有官方文档:https://hexdocs.pm/plug/Plug.Upload.html不提供与其他插头不同的示例,例如:Plug.Parsers ( https://hexdocs.pm/plug/Plug.Parsers.html )。

有人可以举个例子吗?

最佳答案

Plug.Upload不是插头,正如 Aleksei 在评论中提到的那样。您无法将其添加到您的管道中。相反,:multipart应该在 Plug.Parsers 中被允许您的 endpoint.ex 中的配置(默认情况下它在那里):

plug Plug.Parsers,
parsers: [:urlencoded, :multipart, :json],
pass: ["*/*"],
json_decoder: Phoenix.json_library()
您需要一个路由来处理带有上传文件的 POST 请求:
post "/upload_photo", UploadController, :photo
相应的 Controller 操作将获得 Plug.Upload struct 在其参数之一中:
def photo(conn, %{"upload" => upload}) do
IO.inspect upload.photo, label: "Photo upload information"
# TODO: you can copy the uploaded file now,
# because it gets deleted after this request
json(conn, "Uploaded #{upload.photo.filename} to a temporary directory")
end
为了进行测试,您可以添加一个包含 multipart: true 表单的页面。
<%= form_for @conn, "/upload_photo", [as: :upload, multipart: true], fn f -> %>
它有一个文件输入
<%= file_input f, :photo, class: "form-control" %>
详细说明在 Phoenix framework docs 中提供.

关于elixir - 如何使用 Plug.Upload?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55812112/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com