0
私は次のJSコードを持っています。この関数はファイルを受け取り、サーバーに保存するWEBAPIサービスを呼び出します。404ネットで大きなファイルを投稿した後
.onfailを確認してください、
ファイルサイズは、私はこのコードを持っているウェブAPIコントローラ上の500メガバイト
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');
}
}
です:私は取得10または15分後
[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);
}
}
404、探しているリソースがサーバー上にないか、使用できません。
しかし、ファイルが小さくなるとプロセスは正常に動作します。
また、これはローカルで動作しますが、1台のサーバーにデプロイするとエラーが発生し、そこでVisual Studioをインストールできないため、サーバーでデバッグできません。
MVC web.configを更新して、50MBのファイルを許可していることを確認しましたか? – Canvas
nop、編集する必要がある部分を貼り付けてください。 –
また、小さなファイルをアップロードしたら、サーバ上で見つけることができますか? – Canvas