首页 > 解决方案 > 在浏览器 Elixir 中下载分块文件失败

问题描述

显然,我似乎缺少要在代码中添加的内容。我正在发送分块的 HTTP 响应和内容类型text/csv,因此如果我在浏览器中打开它,它应该会下载。但它无法下载,我不知道它的解决方案,因为我正在学习长生不老药。这是我正在尝试的代码。你能帮我解决这个问题吗?

get "/dbs/foo/tables/source" do
  conn
  |> put_resp_content_type("text/csv")
  |> send_chunked(206)
  |> foo_data
end


  defp foo_data(conn) do
    Enum.reduce_while(["every-","word-","is-","a-","chunk"], conn, fn (chunk, conn) ->
      case Plug.Conn.chunk(conn, chunk) do
        {:ok, conn} ->
          {:cont, conn}
        {:error, :closed} ->
          {:halt, conn}
      end
    end)
  end

邮差

邮递员截图

铬合金

铬截图

标签: elixircowboyplug

解决方案


我发现我做错了什么。我正在发送状态代码206而不是200. 归功于指出我的@NobbZ(Slack)。更改状态代码后,它按预期工作。


推荐阅读