在浏览器 Elixir 中下载分块文件失败
Download failes for chuncked file in browser Elixir
显然,我似乎缺少要添加到我的代码中的内容。我正在发送一个分块的 HTTP 响应,内容类型为 text/csv
,这样如果我在浏览器中打开它,它就会下载。但是它下载失败,我在学习 elixir 时不知道它的解决方案。这是我正在尝试的代码。你能帮我解决这个问题吗?
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
邮递员
chrome
我发现我做错了什么。我发送的是状态代码 206
而不是 200
。归功于指出我的@NobbZ(Slack)。更改状态代码后,它按预期工作。
显然,我似乎缺少要添加到我的代码中的内容。我正在发送一个分块的 HTTP 响应,内容类型为 text/csv
,这样如果我在浏览器中打开它,它就会下载。但是它下载失败,我在学习 elixir 时不知道它的解决方案。这是我正在尝试的代码。你能帮我解决这个问题吗?
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
邮递员
chrome
我发现我做错了什么。我发送的是状态代码 206
而不是 200
。归功于指出我的@NobbZ(Slack)。更改状态代码后,它按预期工作。