Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

119
Vistas
Cómo enviar archivos a MVC Action usando FormData

Estoy creando una aplicación de carga de archivos ASP.NET Core 6. Este es mi código:

FORMULARIO

 <form asp-controller="Home" asp-action="UploadFiles" method="post" enctype="multipart/form-data" id="uploadForm"> <input type="file" class="form-control-file" multiple name="files"> @foreach (var folder in @Model.Folders) { <input id="filePathUrl" type="radio" asp-for="Folders" value="@folder" /> @folder } <button type="submit" class="btn custom-button">Upload Files</button>

jQuery

 function processFiles(confirmOverwrite = false){ const filePath = $("#filePathUrl").val(); const fileList = $(".form-control-file")[0].files; const files = Array.from(fileList); let formData = new FormData(); files.forEach(file => formData.append("files[]", file)); const URL = '@Url.Action("UploadFiles", "Home")'; $.ajax({ url: URL + '?folders=' + filePath + '&confirmOverwrite=' + confirmOverwrite, type: 'post', data: formData, // dataType: 'json', contentType: false, processData: false, ...

Acción MVC

 [HttpPost] public async Task<JsonResult> UploadFiles(IEnumerable<IFormFile> files, string folders, bool confirmOverwrite = false) { List<string> existingFiles = new(); var filesToBeSaved = new List<(IFormFile file, string filePath)>(); foreach (var file in files) { string trimmedFileName = file.FileName.Replace(" ", ""); var filePath = Path.Combine(folders, trimmedFileName); if (System.IO.File.Exists(filePath) && !confirmOverwrite) { existingFiles.Add(file.FileName + "(" + trimmedFileName + ")"); } else { filesToBeSaved.Add((file, filePath)); } } ...

He eliminado mucho código para mantener las cosas relevantes y simples.

¿Por qué el argumento de los archivos aparece como nulo cuando envío el formulario?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Model Binding vincula el parámetro por nombre. Su backend aquí IEnumerable<IFormFile> files nombre de los archivos es files .

Entonces necesitas cambiar tu código como se muestra a continuación:

 files.forEach(file => formData.append("files", file));

Además, sé que es posible que desee publicarlo por índice de matriz. Solo para el tipo de modelo de lista compleja, es posible que necesite una publicación como: model[index].PropertyName . Consulte aquí .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda