Yes, just copy the files to a temporary folder and show the files as a list that was successfully downloaded. Then save the file names inside hidden input fields (for example), and when the user submits the form again, you can upload new files, as well as retrieve files that were previously downloaded.
Some pseudo noise:
/*
If $_POST request
Loop through every file uploaded ($_FILES)
Check for errors
Save the file into a temporary directory
Build an array of files successfully uploaded
Loop through previously uploaded files ($_POST['uploaded'])
Append the filenames to the array of uploaded files
Validate the rest of the form
If no errors
Move files from temporary location to the actual location
Else
Show the same form
Print the filenames inside hidden input fields
<input type="hidden" name="uploaded[]" value="filename.txt" />
Show the user the list of files and allow deletion of files
Rinse and repeat
*/
source
share