Asp.net загрузка нескольких файлов
Привет
Я загружаю несколько файлов из ASP.Чистая веб-форма. у нас есть одна страница с несколькими панелями
из панели 2 я прикрепляю 5 файлов, а из панели 5 отправляю страницу
я сохраняю информацию о файле в сеансах и назначаю FileUpload в Ispostback
ObjFileUploader1 = (FileUpload)Сессия["FileUpload1"];
ObjFileUploader2 = (FileUpload)Сессия["FileUpload2"];
ObjFileUploader3 = (FileUpload)Сессия["FileUpload3"];
ObjFileUploader4 = (FileUpload)Сессия["FileUpload4"];
ObjFileUploader5 = (FileUpload)Сессия["FileUpload5"];
на кнопке отправки я хочу выполнить итерацию через ObjFileUploader1 , ObjFileUploader2 , ObjFileUploader3,ObjFileUploader4,ObjFileUploader5
для сохранения в БД и сервере
запрос.файлы не работают из-за того, что я нахожусь в панели 5
В настоящее время я делаю , как показано ниже, повторяющийся код
если (темп != 0 &&усилителя; ObjFileUploader1 != нуль &амп;&амп; ObjFileUploader1.HasFile)
{
Сохраните БД и загрузите файл
}
если (темп != 0 &&усилителя; ObjFileUploader2 != нуль &амп;&амп; ObjFileUploader2.HasFile)
{
Сохраните БД и загрузите файл
}
если (темп != 0 &&усилителя; ObjFileUploader3 != нуль &амп;&амп; ObjFileUploader3.HasFile)
{
Сохраните БД и загрузите файл
}
Пожалуйста, помогите мне
Что я уже пробовал:
Запрос.сбор файлов не работает
Запрос.файлы
Laiju k
какую ошибку вы получаете?
Ziee-M
Почему бы вам не создать свой собственный список в качестве глобальной переменной на странице и не использовать его ?
Вы можете сохранить список в виде состояния просмотра вместо сеансов.
Сеансы-это зло, кстати, есть бесчисленные статьи на эту тему.
Richard Deeming
"Глобальные переменные" обычно относятся к статическим/общим полям, которые являются абсолютным злом в веб-приложении. Существует только одно общее значение между ними. все запросы от все пользователи, поэтому вы в конечном итоге сохраняете данные одного пользователя в записях другого пользователя.
Хранение значений в ViewState также не является хорошей идеей. Даже если они будут сериализованы, вы закончите тем, что пользователь загрузит файлы; ваш код отправит содержимое файлов обратно пользователю в ViewState; пользователь отправит содержимое файлов обратно на сервер в ViewState; сервер отправит содержимое файлов обратно пользователю в ViewState и т. д.
Сеанс-это лучший выбор, и, конечно же, он не является "злым". Но вы все равно столкнетесь с проблемами, пытаясь сохранить большие объемы данных в памяти сервера. Вероятно, было бы лучше сохранить файлы во временном месте, используя случайно сгенерированные имена; сохранить имена в сеансе; и иметь код в системе. Session_End
событие для удаления всех файлов, которые не были обработаны.
Richard Deeming
NB: Если вы используете .NET 4.5 или более позднюю версию, вы можете установить Свойство allowmultiple[^] свойство на одном FileUpload
управление, позволяющее пользователю загружать несколько файлов, а не использовать несколько FileUpload
управления.
Поддержка браузеров[^] довольно разумно.