Я пытаюсь загрузить файл изображения на сервер с помощью Phoenix. Я не нашел хороших примеров для этого.
Следующий код - это тот, который я написал, но он не работает. У меня следующие ошибки.
no function clause matching in FileUploadWeb.PageController.upload/2
контроллер
defmodule FileUploadWeb.PageController do
use FileUploadWeb, :controller
def index(conn, _params) do
render(conn, "index.html")
end
def upload(conn, %{"upload" => upload}) do
path_upload = upload["photo"]
File.cp(path_upload.path, Path.absname("upload/#{path_upload.filename}}"))
render(conn, "index.html")
end
end
index. html .eex
<div>
<%= form_for @conn, "/upload", [multipart: true], fn f ->%>
<%= file_input f, :photo, class: "form-control" %>
<%= submit "Upload", class: "btn btn-primary" %>
<% end %>
</div>
роутер
scope "/", FileUploadWeb do
pipe_through :browser
get "/", PageController, :index
post "/upload", PageController, :upload
end
Не могли бы вы дать мне хороший пример? Спасибо.