Multiple but sequencial file uploads with LiveView

Hello! I’m creating a page to upload multiple files. I want that the user can select (or drag&drop) multiple files at once and start uploading. I achieved it using:

     allow_upload(socket, :samples,
       accept: :any,
       max_entries: 10_000_000,
       max_file_size: 10_000_000_000,
       auto_upload: true
     )

However, if you select 100 files all of them are uploaded at the same time. I don’t like this behavior; I’d like to upload only one file concurrently (or maybe 2). Once the file is completely uploaded, continue with the next one.

I couldn’t find any information on LiveView and this behavior. As far as I could understand, it seems to be a Javascript thing, but no idea how to modify the default behavior in LiveView.

Any ideas? Thank you!!

Not supported at the moment, but there was a previous effort to add a max_concurrency option– personally I’d be happy to review a PR if someone wanted to resurrect that effort :slight_smile:

3 Likes

Thanks for the response. I can see some PRs opened by Zurga. The last one is still open for a long time ago: A maximum of concurrent uploads using Channels can be set and enforced by Zurga · Pull Request #1659 · phoenixframework/phoenix_live_view · GitHub

It seems it doesn’t have conflicts with the master branch, so I guess I cannot do anything until a member of Phoenix team review it :slight_smile: Let me know if there is anything I can do to help.