- Elixir version:
1.19.1 (compiled with Erlang/OTP 26)
- Phoenix and LiveView versions:
phoenix 1.7.21
phoenix_live_view 1.0.17
- Operating system:
- macOS (works)
- Android (fails)
- Browsers:
- Chrome Android (fails) ❌
- Firefox Android (works) ✅
- Chrome Desktop (works) ✅
Problem
live_file_input does not populate @uploads.images.entries on Chrome Android in production,
while the exact same code works on localhost (same Android device) and on Firefox Android.
Actual behavior
- User selects image file via
<.live_file_input />
- File picker opens and file is selected ✅
phx-change="validate" event fires ✅
- But
@uploads.images.entries remains empty (count: 0) ❌
- No errors in
upload_errors(@uploads.images) ❌
Expected behavior
After selecting a file, @uploads.images.entries should contain the selected file(s).
Code
# Component
def mount(socket) do
{:ok,
socket
|> allow_upload(:images,
accept: :any,
max_entries: 20,
max_file_size: 20_000_000,
auto_upload: false
)}
end
def handle_event("validate", _params, socket) do
Logger.info("entries count: #{length(socket.assigns.uploads.images.entries)}")
{:noreply, socket}
end
# Template
<.simple_form for={@form} phx-target={@myself} phx-change="validate">
<.live_file_input upload={@uploads.images} />
</.simple_form>
<%= for entry <- @uploads.images.entries do %>
<div id={"preview-#{entry.ref}"} phx-update="ignore">
<.live_img_preview entry={entry} />
</div>
<% end %>
1.19.1 (compiled with Erlang/OTP 26)phoenix 1.7.21phoenix_live_view 1.0.17Problem
live_file_inputdoes not populate@uploads.images.entrieson Chrome Android in production,while the exact same code works on localhost (same Android device) and on Firefox Android.
Actual behavior
<.live_file_input />phx-change="validate"event fires ✅@uploads.images.entriesremains empty (count: 0) ❌upload_errors(@uploads.images)❌Expected behavior
After selecting a file,
@uploads.images.entriesshould contain the selected file(s).Code