Этот плагин jQuery давал каждому сгенерированному элементу управления вводом точно такой же атрибут имени.
По этой причине файлы не публиковались.
Я создал собственное решение для JavaScript.
Я опубликую ссылку на код в комментарии.
Редактировать
Я вернулся к этому и обнаружил, что то, что я пытался сделать, было совсем не сложно. Я получил плагин jquery для загрузки нескольких файлов, чтобы он работал нормально с моей формой aspx. Я не знаю, почему у меня было так много проблем раньше.
1.) Включите библиотеку jQuery в веб-форму:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript" />
2.) Ссылка на плагин для нескольких файлов в веб-форме ( Скачать его здесь ):
<script src="jquery.MultiFile.pack.js" type="text/javascript">
3.) Добавьте входной файл в веб-форму с помощью class = "multi":
<input type="file" class="multi" />
4.) Выполните некоторый код или вызовите метод, подобный этому, при отправке формы:
void SendMail(string from, string to, string subject, string body, string smtpServer)
{
// create mail message
MailMessage mail = new MailMessage(from, to, subject, body);
// attach posted files
for (int i = 0; i < Request.Files.Count; i++)
{
HttpPostedFile file = Request.Files[i];
mail.Attachments.Add(new Attachment(file.InputStream, file.FileName));
}
//send email
new SmtpClient(smtpServer).Send(mail);
}
Это все, что мне нужно было сделать, чтобы прикрепить несколько файлов к электронному письму, отправленному со страницы aspx.
Если вы хотите увеличить общий размер загружаемых файлов, добавьте это в файл web.config:
<system.web>
<httpRuntime executionTimeout="240" maxRequestLength="30720"/>
</system.web>
ExecuteTimeout измеряется в секундах, а maxRequestLength измеряется в килобайтах. В этом примере запрос будет отключен через 4 минуты и разрешит запрос 30 МБ.