Я делаю некоторую интеграцию со сторонним программным обеспечением для создания форм, которое позволяет отправлять форму на наш собственный сервер.Данные и файлы формы затем сохраняются в БД.Проблема в том, что когда форма содержит несколько полей для загрузки файла, Request.Files
всегда пусто.
Используя Fiddler, я вижу, как поступают двоичные файлы.Единственное, о чем я могу думать, это то, что имя поля содержит квадратные скобки (потому что оно отправляется в виде массива), и поэтому механизм связывания модели не может связать его должным образом?Имена полей, которые проходят через tfa_20[0]
и tfa_20[1]
.
В коде, это довольно стандартные вещи:
var data = new Submission()
{
ConfigurationDetailId = configDetail.Id,
SubmitterEmail = submitterEmail,
SubmissionData = Request.Form.AllKeys.Select(k => new SubmissionData()
{
FieldName = k,
FieldValue = Request.Form[k]
}).ToList(),
SubmissionFiles = new List<SubmissionFile>()
};
// process any files uploaded
if (Request.Files.Count > 0)
{
foreach (string field in Request.Files)
{
var uploadedFile = Request.Files[field];
if (!string.IsNullOrEmpty(fileName))
{
data.SubmissionFiles.Add(GetSubmissionFile(uploadedFile, fileName));
}
}
}
Repository.SaveForm(data);
Любая помощь будет принята с благодарностью.