PJUllrich

PJUllrich

Author of Building Table Views with Phoenix LiveView

Phoenix LiveView + send_file

In plain Phoenix, one can offer a file-download with the Plug.Conn.send_file/5 function and it works nicely. Now, how would you solve this within a Phoenix LiveView context where there is no Plug.Conn available anymore, but a Phoenix.LiveView.Socket?

My solution so far is to make a GET request to an Endpoint where a Plug.Conn is handling the request. However, this takes me out of the LiveView context and causes a page reload. Is there a more interactive way of solving this with e.g. phx-click?

Most Liked

LostKobrakai

LostKobrakai

What @NobbZ said and <a href="url" download>Download</a> should be enough to not make the browser move you to a new “page”. target="_blank" might also work.

NobbZ

NobbZ

I have not used LiveView, but from my point of view, sending a file over the socket that is responsible to continously update the view doesn’t make any sense.

Of course you need a side channel to download the file, personally I’d just fall back to a regular HTTP request.

Last Post!

PJUllrich

PJUllrich

Author of Building Table Views with Phoenix LiveView

Thanks, I solved it with the solution of @LostKobrakai and used an <a download...> tag for making the download call.

Where Next?

Popular in Questions Top

hariharasudhan94
Lets say I have map like this fetching from my database %{"_id" =&gt; #BSON.ObjectId&lt;58eb1a7a9ad169198c3dXXXX&gt;, "email" =&gt; ...
New
aadeshere1
I have a another noob question about loop. Since elixir is immutable, while loop is not directly possible. total = 10 while total != 0 ...
New
gshaw
What is the idiomatic way of matching for not nil in Elixir? E.g., First way: defp halt_if_not_signed_in(conn, signed_in_account) when...
New
fireproofsocks
Forgive me if this is obvious, but how does one delete a database record WITHOUT selecting it first? Ecto.Repo — Ecto v3.14.0 has exampl...
New
komlanvi
Hi everyone, I was playing with phoenix liveView but I run into an issue. I have a form and want to validate each input text when the te...
New
SoCreat
i’m a new one to elixir which editor can i use vs code? or atom? Thanks! :smiley:
New
dblack
I’ve got an issue with an app and I’ve no idea of how to troubleshoot it. I’m hoping someone here might have seen something similar. I p...
New

Other popular topics Top

vertexbuffer
Hello, can anybody help here..? I have a list of players and I what to delete an element, but every for loop the list is reverting to ori...
New
baxterw3b
Hi guys, i’m new in the Elixir world, and i have to say, that i love it! i’m having some problem to understand anonymous functions with ...
New
joaquinalcerro
Hi there, I am working with Ecto-Postgresql and I need to call all of the records from a specific table but the table has 40,000 records...
New
JakeBecker
TL;DR: I’ve just released an implementation of Microsoft’s IDE-independent Language Server Protocol for Elixir. It adds language support ...
1144 55125 245
New
joeerl
Hello again - after a longish gap I’ve decided I really must dig into Elixir and see what’s been happening here - so I have a few questio...
New
AngeloChecked
What learn first? Rust or Elixir Hi Elixir community! I’m here because i want learn a new language. I’m a junior developer and mainly i ...
New

We're in Beta

About us Mission Statement