Upload button functionality

In Vaadin Flow 24, I’ve created an Upload button and set it to allow multiple files to be upload and to only do so on clicking a separate custom button (i.e., I’ve disabled automatic upload.) However, I could not figure out how to the following. Is it possible?

  1. Prior to actually doing the upload, I’d like to know the name of the file and the file size so that I can determine if I already have the file on my cloud storage system; if so, I’d like to, ideally, mark the file as having been successfully uploaded (with perhaps an optional icon/mesage indicating that we already had the file on our systems.)
  2. I’d like to hide the “>” icon next to each file, because it’s confusing for the user. I don’t want them to be able to click on the “>” icon to upload a file; instead, they should ONLY be able to click on my custom “Submit” button.
  3. I think (though I’m not 100% sure) that Vaadin tries to uploads files in parallel; however, isn’t it better to upload files sequentially? This way, if something fails midway, user’s don’t need to restart from the beginning, since at least half the files would have completely been uploaded. Is there a way to do the uploads SEQUENTIALLY? (This is also easier for users to undertand.)
  4. Also, I think (but I’m not sure) that when Vaadin reports the upload progress speed, it’s actually reporting the READing of the file from the user’s local machine and then states “PROCESSING file” when it’s actually trying to transmit the (super large) file over the internet. I think that’s misleading, and it should INCLUDE the transmission time when displaying the uploading statitics (and not lump that time in the “processing” time slot). Perhaps I’m mistaken, since I’m using my own custom receiver to pipe the data to Google Cloud storage in real time using Java PipedInputStream and PipedOutputStream classes.

Thoughts?

#2

vaadin-upload-file::part(start-button) {
  display: none;
}

Great! I’ll try that. Any thoughts/luck on the other items?

Unfortunately not. Perhaps @jeanchristophe.gueriaud will have some ideas. :slight_smile: