Кажется, что мой ajax не может найти контроллер при загрузке нескольких файлов большого размера
Мой взгляд:
<input type="file" id="examen_ingresar" name="examen_ingresar" multiple>
Мои Js:
$.ajax({
type: "POST",
url: '/Analisis/IngresarExamen?id_analisis=' + id_analisis ,
contentType: false,
processData: false,
data: data,
success: function (result) {
retorno = result;
},
error: function (xhr, status, p3, p4) {
var err = "Error " + " " + status + " " + p3 + " " + p4;
if (xhr.responseText && xhr.responseText[0] == "{")
err = JSON.parse(xhr.responseText).Message;
console.log(err);
}
});
AnalisisController.cs:
[HttpPost]
public JsonResult IngresarExamen(long id_analisis)
{
int retorno = 0;
try
{
for (int i = 0; i < Request.Files.Count; i++)
{
HttpPostedFileBase file = Request.Files[i];
string direccion = Path.Combine(Server.MapPath("/AppUploads/" + id_analisis), Guid.NewGuid() + Path.GetExtension(file.FileName));
System.IO.Directory.CreateDirectory(Server.MapPath("/AppUploads/"+ id_analisis));
retorno += amodel.IngresarExamen(id_analisis, direccion);//Just a method that make the register, if it's ok returns 0
System.IO.Stream fileContent = file.InputStream;
file.SaveAs(Path.Combine(direccion));
}
}
catch (Exception)
{
retorno++;
Response.StatusCode = (int)HttpStatusCode.BadRequest;
}
return Json(retorno);
}
Я также добавил эти строки в Web.config, потому что, возможно, это может быть по размеру файла (позволяя загрузить 5 ГБ)
<system.web>
<httpRuntime targetFramework="4.6.1" maxRequestLength="5242880" executionTimeout="2400" />
<compilation debug="true" targetFramework="4.6.1"/>
</system.web>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="5242880"/>
</requestFiltering>
</security>
</system.webServer>
Это на самом деле работаетдля некоторых маленьких файлов, поэтому я тестирую его с 3 файлами, которые составляют 1 ГБ, примерно через 5 секунд он показывает в консоли браузера:
POST http://localhost:60139/Analisis/IngresarExamen?id_analisis=40 404 (Not Found)