_ProgProg_ Ответов: 2

Несколько файлов из 2 или более элементов управления загрузкой файлов


Дорогие,

У меня здесь ситуация с загрузкой нескольких файлов из нескольких элементов управления в asp.net mvc.

Как я могу различать (группировать) файлы каждого элемента управления загрузкой файлов?

в HTML:
Вот загрузчики:
<input type="file" name="AdditionalDocs" class="form-control" id="AdditionalDocs" multiple>

<input type="file" name="BudgetDocs" class="form-control" id="BudgetDocs" multiple>

<input type="file" name="TimelineDocs" class="form-control" id="TimelineDocs" multiple>


на стороне сервера:
for (int i = 0; i < Request.Files.Count; i++)
{
    HttpPostedFileBase file = Request.Files[i];
    if (file.ContentLength > 0)
    {        
        lstAttachments.Add(new AttachmentDTO
        {
            FileName = file.FileName,
            MimeType = file.ContentType,
            FileContent = data
        });               
    }
}


После этого я получил все файлы, но не категоризированные.

Есть идеи, как классифицировать эти файлы?

Что я уже пробовал:

Я пытался в зависимости от имени файла при категоризации этих файлов, но, возможно, имя файла повторяется.

2 Ответов

Рейтинг:
13

Richard Deeming

Воспользуйся HttpFileCollectionBase.GetMultiple[^] для получения списка опубликованных файлов для каждого входного сигнала:

IList<HttpPostedFileBase> additionalDocs = Request.Files.GetMultiple("AdditionalDocs");
IList<HttpPostedFileBase> budgetDocs = Request.Files.GetMultiple("BudgetDocs");
IList<HttpPostedFileBase> timelineDocs = Request.Files.GetMultiple("TimelineDocs");
Затем вы можете обрабатывать файлы из каждого списка отдельно.


Рейтинг:
1

OriginalGriff

Почти уверен, что это не сработает:

FileContent = data
С data не меняется внутри вашего цикла, вы получите одно и то же содержимое файла (если таковое имеется) для каждого файла. Я думаю, вам нужно получить доступ к файлу.Поток контента для того, чтобы его использовать...