I currently am building a bulk download page for my application, and am running into some problems designing the predictability of the main workflow for an end user.

From this screen below (which serves as an example), the goal is to allow a user to either download one file or multiple files at once. The way this system is currently being implemented is that depending on whether users select one or multiple, they are redirected to a different version of the download page.

List view of all files

Within the download page, a user can select a variety of file formats. The image below shows the page a user will land on when downloading multiple files, which runs them through a variety of options before zipping the file. To add to the complexity, within each file, there can be several subfiles, so downloading an individual will not guarantee that you will end up on the same page as just downloading a simple file.

Bulk Download Files Page

For files that are simple and can allow a user to download them immediately, that view looks a little different (shown below), and I want to retain that same functionality of allowing them to download without zipping each file format in a different folder.

Individual File Download

The main problem with these two flows is that a user never knows exactly which version of the download page they will end up on due to the complexity of each file.

Any ideas? Any help would be greatly appreciated.

  • 1
    I can't reiterate enough, "who will use this, why would they use this and how are they going to use this," if you can state your user case then the functionality should flow from it. The above doesn't logically sit in any user case that I can derive from it, the 'statement' appearance of the top screen appears at odds with the PNG and raster formats being offered below. Jun 6, 2019 at 14:42
  • 1
    I don't understand the point of having multiple selection stages. Why not just use the batch interface? The user can download a single file by selecting only one file. The backend can determine without any user intervention whether anything needs to be "zipped".
    – 習約塔
    Jun 6, 2019 at 15:21
  • This seems overly complicated. Why do you need a separate flow for a single file vs many? Save the user a click? They'll have to learn two different pages instead of just 1.
    – Bowen
    Jun 6, 2019 at 17:05
  • @Bowen it's because there are two possible use cases. A user will want to download images individually in different formats, which can performed immediately. The other use case is that they want it in a variety of formats for several files, which could take a while for the system to zip and then allow a user to download the zip file. If we let an individual download 30 files at one time, it might slow down their browser or be too taxing cognitively.
    – Derek Mei
    Jun 6, 2019 at 17:49
  • @DarrylGodden you bring up a good point. I've abstracted out this use case a bit due to confidentiality issues, but the use case exists for both. Users need the ability to download files in a variety of ways, due to that being our primary reason why people use our application in the first place.
    – Derek Mei
    Jun 6, 2019 at 17:50

2 Answers 2


At least some suggestions...

Some questions I have are:

After I make some file selections, will I remember what they are and what formats I will need to select for each file as I'm using the download screens? Will it be easy to go back and check? How many files am I likely to download at one time?

  1. Would it be possible to reveal, for example, a select box when I check a file that provides my available file format options in the current table? The selection could take place before the download screen.

  2. Maybe instead of a checkbox, when I click on a file it directly shows me the format options, where my selection is then added to que/form, and I am returned to the main file list page. Then the download action aggregates all these selections as review. Your "simple" file screen could be an overlay, for example, that "confirms" the file should be checked when a format is selected.

Both of these would try to get the user to select the file format concurrently with the file selection.

I keep thinking, I would feel better knowing the files I want are already selected before I step into the next stage of the workflow. (For single files your second example is perfect, for multiple files it does change a bit)

This could help provide a more consistent second-step (download) screen. Would make coding in the backend easier too.


I think you need to take a step back and decide which formats are to be downloaded for a file when you are viewing details of that file before adding them to the download queue. If the image in the question is a download file list, then it should also display what formats have been selected for each file and the corresponding sizes. You can also zip the files before adding them to the list, if they are to be downloaded separately.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.