gpt4 book ai didi

javascript - 使用 .net 发布大文件后出现 404

转载 作者:行者123 更新时间:2023-12-03 06:10:30 24 4
gpt4 key购买 nike

我有以下 JS 代码,该函数调用 WEBAPI 服务,该服务接收文件并将其保存到服务器。

请检查.onfail,

文件大小为 500MB

function GuardarOrigen() {
var NombreOrigen = $("#Nombre").val()
if (NombreOrigen == '') {
info('Debe ingresar un nombre');
return;
}
var rgx = new RegExp("^[a-zA-Z0-9]+$");

if (!rgx.test(NombreOrigen)) {
info('El nombre no debe tener espacios en blanco ni caracteres especiales.');
return;
}
var files = $('#Archivo').get(0).files;

if (files.length > 0) {
if (window.FormData !== undefined) {
var data = new FormData();
for (var x = 0; x < files.length; x++) {
data.append("file" + x, files[x]);
}



$("#bntGuardar").prop('disabled', true);
$("#imgLoader").show();
$.ajax({
url: urlCrearOrigen + '?NombreOrigen=' + NombreOrigen,
method: "POST",
contentType: false,
processData: false,
data: data,
success: function (result) {
info("Guardado con éxito.");
window.location.href = urlEditarOrigen + result
},
}).fail(function (jqXHR, textStatus) {
info("Error guardando el origen");

console.log('Error:' + jqXHR.responseText + textStatus);

}).always(function () {
$("#imgLoader").hide();
$("#bntGuardar").prop('disabled', false);


});
}
} else {
info('Debe seleccionar el archivo');
}

}

在 WEB API Controller 上我有以下代码:

[HttpPost]
[Route("/CrearOrigen")]
public async System.Threading.Tasks.Task<HttpResponseMessage> CrearOrigen(string NombreOrigen)
{

if (!Request.Content.IsMimeMultipartContent())
{
return this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, "No se recibieron archivos");

}

string root = HttpContext.Current.Server.MapPath("~/App_Data/CargaOrigenes");
if (!Directory.Exists(root))
{
Directory.CreateDirectory(root);
}
var provider = new MultipartFormDataStreamProvider(root);
await Request.Content.ReadAsMultipartAsync(provider);
if (provider.FileData.Count == 0)
{
return this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Parámetros invalidos - sin archivo");
}

string FileName = provider.FileData[0].LocalFileName;
string[] FileParts = provider.FileData[0].LocalFileName.Split(Convert.ToChar("."));
string FileExt = String.Empty;
if (provider.FileData[0].Headers.ContentDisposition.FileName.Contains(".csv"))
{
FileExt = "csv";
}
else
{
return this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Archivo no soportado");
}

try
{

CargasMasivasManager cmm = new CargasMasivasManager();
int idOrigen = cmm.CrearOrigen(FileName, FileExt, NombreOrigen);

return this.Request.CreateResponse(HttpStatusCode.OK, idOrigen.ToString());
}
catch (Exception e)
{
return this.Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e.Message);
}

}

10 或 15 分钟后,我收到 404,您要查找的资源不在服务器上或不可用。

但是,当文件较小时,该过程可以正常工作。

此外,这可以在本地运行,但是当部署在一台服务器上时,我收到错误,并且无法在服务器上调试,因为我无法在那里安装 Visual Studio。

最佳答案

尝试更新您的 web.config 以允许大文件

<configuration>
<system.web>
<httpRuntime maxRequestLength="xyz" />
</system.web>
</configuration>

xyz 的单位是 KB,因此 2048kb = 2mb。所以 500mb = 512000kb

关于javascript - 使用 .net 发布大文件后出现 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39338514/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com