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

247
Vistas
Descarga del objeto de archivo desde el controlador API de C# al cliente usando Javascript

Estoy tratando de devolver un archivo para que un usuario lo descargue cuando hace clic en un botón de descarga en la página. El truco es que estoy descargando el archivo desde un servicio de URL interno. lo tengo configurado de la siguiente manera

El controlador de descarga es una función a la que llamo para devolver el archivo ()

 public class DownloadController : ControllerBase { public FileResult DownloadFile(string url) { WebClient internalDownload = new WebClient(); byte[] bytes = internalDownload.DownloadData(url); return File(bytes, "application/octet-stream", "test" + ".txt"); } }

El controlador API esto es lo que llama el JS

 public class TickController : ApiController { [Route("api/Tick/Download")] [HttpPost] public async Task<IActionResult> Download([FromBody] string ID) { string url = await GetFile("D00023974"); DownloadController downloader = new DownloadController(); return downloader.DownloadFile(url); } }

El Javascript que tengo para fines de prueba en este momento.

El API Manager Javascript que envía la solicitud al controlador anterior:

 export class ApiCall { static post(controller: string, action: string, data: any, qString?: string) { var url = '/api/' + controller; if (action != null) url += '/' + action; if (querystring != null) url += "?" + qString; return $.ajax({ url: url, data:JSON.stringify(data), method: 'POST', dataType: 'json', contentType: 'application/json; charset=utf-8', }); } }

Y la llamada de prueba actual y verificar si está devolviendo algo.

 async downloadAttach(ID: any) { window.open(await WebApiManager.post('Tick', 'Download', ID)); }

Lo anterior devuelve un objeto de la siguiente manera:

 [[Prototype]] Object ContentType application/octet-stream FileContents //Filled with Base64 FileDownloadName test.txt _proto_ Object

Sin embargo, no estoy seguro de cómo iniciar la descarga en el lado del cliente del archivo devuelto. Cualquier ayuda sería muy apreciada.

about 4 years ago · Juan Pablo Isaza
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