Я пытаюсь загрузить файл в своем проекте MVC, и когда я передаю файл в контроллер через ajax, он не работает.Когда я проверяю объект HttpPostedFileBase, который передается в контроллер, все там, кроме файла.Я вижу, что ReadTimeout и WriteTimeout оба выдают ошибку «file.WriteTimeout» вызвала исключение типа System.InvalidOperationException »
Я извлек System.web и установил свойство timeout, а такжепроверка того, что файл находится в установленных пределах.Они оба в порядке.Я убедился, что мой метод записи указывает enctype = "form / multi-part data".Кажется, это все, что я могу найти.Любые предложения будут высоко оценены.
На мой взгляд это выглядит так:
@using (Html.BeginForm("UploadDocument", "ControllerName", new { id = Url.RequestContext.RouteData.Values["id"] }, FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<table class="table table-condensed">
<tr>
<th>Upload Document</th>
<td class="text-right">
@Html.TextBoxFor(m => m.File, new { type = "file" })
</td>
</tr>
</table>
<input class="pull-right btn btn-success btn-sm" type="submit"
name="btnSubmit" value="Upload" id="btnSubmit">
}
Затем в контроллере:
[HttpPost]
public ActionResult UploadDocument(string id, HttpPostedFileBase file)
{
// Verify that the user selected a file
if (file != null && file.ContentLength > 0)
{
var fileName = Path.GetFileName(file.FileName);
if (file != null)
{
if (model.File.ContentLength > 0)
{
var stream = file.InputStream;
var uploadResult = _client.module.Upload(custId, stream);
}
}
}
return RedirectToAction("NewAction", new { id = Guid.Parse(id) });
}
И, наконец, webconfig:
<httpRuntime targetFramework="4.6.1" maxRequestLength="5120" executionTimeout="360"/>
Файл должен передаваться как часть параметра HttpPostedFileBase, но это не так, он просто выводится, и локальная версия моего API показывает, что параметр для потока имеет значение null, что и следовало ожидатьтак как файл не попадает в контроллер.Размер и тип файла передаются, поэтому я уверен, что это проблема тайм-аута.Файлы, которые я использую для тестирования, имеют размер 1,2 и 2 МБ.
Любая помощь будет принята с благодарностью