Способ, которым мы обрабатываем это, когда файл загружен, он сохраняется в известной директории с временным именем файла на основе GUID. Временное имя файла и оригинальное загруженное имя файла затем сохраняются в списке FileDetails в нашем классе. Наш класс затем сериализуется в ViewState страницы, но он также может храниться в состоянии сеанса (я бы не рекомендовал этого, если ваши пользователи открывают несколько страниц или входят в систему на нескольких компьютерах с одним и тем же именем входа).
Когда нажата кнопка сохранения, мы перебираем список FileDetails в нашем классе, извлекаем каждый из временного каталога и отправляем его на sharepoint (или куда он должен идти).
Мы также привязываем загруженные файлы к сетке, чтобы пользователь мог видеть список загруженных файлов и, если он хочет удалить один, он может установить флажок в сетке (удален), который мы проверяем перед обработкой файлов .
Обратите внимание, что этот процесс также может поддерживать автоматическое разархивирование заархивированных файлов: если вы обнаружите, что загруженный файл заархивирован, вы можете разархивировать каждый из файлов во временный каталог и добавить запись для каждого из них в список файлов в учебный класс. Это может значительно сэкономить время ваших пользователей.