Как загрузить файл на сервер с помощью Phoenix - PullRequest
0 голосов
/ 14 июля 2020

Я пытаюсь загрузить файл изображения на сервер с помощью 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

Не могли бы вы дать мне хороший пример? Спасибо.

1 Ответ

0 голосов
/ 15 июля 2020

Это ссылка на то, как сделать загрузку файла из документации Phoenix: https://hexdocs.pm/phoenix/1.3.0-rc.1/file_uploads.html

...