Мои настройки : веб-приложение asp.net mvc с простой формой электронной почты с кнопкой fileUpload и send.
Письмо отправлено правильно, файлы прикреплены - , новложения пусты .Отладка контроллера дает InputStream.ReadTimeout в выражении var myFiles = model.MyFiles;
(см. Код контроллера ниже).
Модель (только части)
public List<HttpPostedFileBase> MyFiles { get; set; }
public List<EmailAttachments> Attachments { get; set; }
HTML
<form id="data" method="post" enctype="multipart/form-data">
<input id="files" type="file" aria-label="files" multiple="multiple" name="MyFiles">
</form>
<input type="button" class="btn k-button k-primary" id="send" value="Send" />
Javascript
$(function () {
$("#send").click(function () {
var form = $("#data");
var formData = new FormData(form[0]);
var files = form.find("#files")[0].files;
$.each(files, function() {
var file = $(this);
formData.append(file[0].name, file[0]);
});
$.ajax({
type: "POST",
url: url,
data: formData,
contentType: false,
processData: false,
success: function (response) {
alert("Success");
},
error: function (response) {
alert("Error");
}
});
});
Контроллер
[HttpPost]
public ActionResult SendCompanyEmail(GeneralEmailViewModel model)
{
...
var myFiles = model.MyFiles; // here occurs the ReadTimeout
if (myFiles != null)
{
foreach (var file in myFiles)
{
if (file != null && file.ContentLength > 0)
{
MemoryStream stream = new MemoryStream(file.ContentLength);
stream.Position = 0;
attachements.Add(new EmailAttachments
{
FileName = file.FileName,
ContentType = file.ContentType,
Stream = stream,
});
}
}
}
// ... code for sending the email ...
}
Любые предложения, где причина ReadTimeout может быть и как это исправить?