Estoy usando un controlador (.ashx) para servir algunos archivos. Tengo una carpeta donde almaceno ebooks. Les nombrar por el PK libros, y cada libro puede tener unos formatos diferentes:¿Cómo puedo enviar al cliente varios archivos para descargar
211.html
211.pdf
211.prc
El siguiente código de prueba de descarga con éxito un libro.
context.Response.ContentType = "application/octet-stream";
context.Response.AppendHeader("Content-Disposition", "attachment;filename=myfile.pdf");
context.Response.TransmitFile(context.Server.MapPath("~/Media/eBooks/212.pdf"));
¿Cómo puedo servir al cliente los tres formatos diferentes? (La organización de clientes existente no está en una carpeta)
yo estaba tratando de hacer algo como esto:
DirectoryInfo bookDir = new DirectoryInfo(context.Server.MapPath("~/Media/eBooks"));
FileInfo[] f = bookDir.GetFiles();
foreach (var n in f)
{
context.Response.AppendHeader("Content-Disposition", "attachment;filename=myfile.pdf");
context.Response.TransmitFile(context.Server.MapPath("~/Media/eBooks/212.pdf"));
}
Pero se descarga un archivo con ninguna extensión de archivo.
estoy de acuerdo, pero lo que creo que si puede hacer una identificación de proceso para cada descarga de archivo zip, entonces puede hacer un seguimiento de cada descarga y el proceso se ejecutará en segundo plano. Si un usuario inicia un archivo comprimido para descargar, el usuario puede enviar un id. De proceso y un archivo para descargar, al mismo tiempo si inicia otro archivo comprimido para descargar, de modo que se generará un segundo ID de proceso y se enviará a la clase de fondo. cuando el proceso finalizó en segundo plano, devuelve la ruta del id del proceso y los archivos zip para descargar. – safi