Estoy buscando transmitir un archivo en fragmentos desde una URL para evitar problemas de memoria (no puedo descargar el archivo localmente y no puedo pasar la URL al cliente). Mi problema principal que no puedo pasar es devolverlo a la vista y comenzar una descarga para el usuario.
js
async downloadAttach(ID: any) { window.open(await ApiFunc.post('Ticket', 'Download', CommID));// my own API call fucntion that works. }
Este código llama a la API en el controlador de C# cuando se hace clic en un botón. Esta API funciona para las funciones que tengo actualmente.
Controlador
[Route("api/Ticket/Download")] [HttpPost] public async Task<//Streamed file> Download([FromBody]string uri) { //Load file into stream in chunks recursively, to pass back to view }
Este es el controlador que toma el URI proporcionado desde la sección de vista y lo carga en fragmentos de regreso al cliente.
¿Cuál es la mejor práctica en torno a esto? (Estoy buscando dividirlo ya para evitar problemas de memoria). También he visto usos de HttpWebRequest pero no estoy exactamente seguro de cómo funciona volver a la vista.
HttpWebRequest
Ejemplo de: archivo de descarga/transmisión desde URL - asp.net
Este es el ejemplo que he estado revisando que lo divide en pequeños fragmentos, pero no estoy seguro de cómo hacer que regrese a la vista y descarga. Lo codifiqué e hice las modificaciones adecuadas para que se ajuste a los paquetes que estoy usando, pero al hacer clic no sucede nada.