Not knowing the full scope of the size (both in terms of items and bytes) of the expected upload list, and not having specifically tried to get through something like this myself, I can only suggest trying a few different approaches and seeing which is scaling better.
One thought would be to take the list of files from the input array, and split that by index into subsets, sending files 0-4 (for example) to one loop, 5-9 to a second loop, etc. I would then include a block that connects to all the loops you create to re-join the results from all of the loops into a workflow body response.
When you say your browser crashes, where is that happening? In the app when loading a huge list of files? If so, you can limit the number in the app. In the workflow when trying to develop it? If so, switch to the tree view, which tends to behave nicer in my experience.
Good luck with this - would love to hear back how you solved for the issue.