Necesita ayuda para agregar la función de descarga a la aplicación MVC

Tengo una aplicación web MVC a la que me gustaría agregar una función que brinde a los usuarios la capacidad de descargar archivos grandes desde mi servidor. Los usuarios tienen una combinación de Mac y PC con Windows. Estaba pensando en la línea de javasripts o silverlight.

¿Puede alguien aconsejarme sobre cómo implementar esta función? ¿Tiene algún ejemplo de código?

preguntado el 12 de junio de 12 a las 21:06

¿Qué tipo de archivos se descargan? -

2 Respuestas

Use el Declarar impuestos método de Controller clase.

Así que crea un controlador llamado FilesController y tener un método de acción llamado DownLoad

public class FilesController : Controller
{  
   public ActionResult Download(string fileId)
   {
     var fullFilePath=FileService.GetFullPath(fileId);  // get the path to file
     return File(fullFilePath,"application/pdf","yourDownLoadName.pdf");  
   }
}

Esto devolverá un archivo PDF desde la ruta especificada (fullFilePath) con el MimeType/ContentType como (PDF) y "suDescargarNombre.pdf" como el nombre del archivo descargable

Los usuarios pueden acceder a esto como http://yourdomainname.com/Files/Download?fileId=somefileId

Este método tiene un montón de Sobrecargas usando la ruta del archivo, matriz de bytes, flujo, etc.

Respondido el 12 de junio de 12 a las 21:06

Esto es rápido, simple y agradable. Gracias. Sin embargo, agregaría una barra de progreso... y estos archivos son como 1 GB, no estoy seguro de si este es el mejor enfoque. - user1204195

@ user1204195: posiblemente debería considerar editar su pregunta para reflejar el hecho de que realmente desea una forma de descargar archivos masivos con una barra de progreso. - Apestoso

No animo a editar la pregunta una vez que las personas respondieron por eso. El OP debería haber incluido los detalles relevantes la primera vez. - Shyju

De hecho, estoy descargando un archivo .mp4. Puedo abrir/reproducir el archivo, pero no sucede nada cuando lo guardo. Aquí está mi código: Public ActionResult Download(string fileId) { //var fullFilePath = FileService.GetFullPath(fileId); // obtener la ruta al archivo var fullFilePath = fileId; return File(fullFilePath, "application/octet-stream", "yourDownLoadName.mp4"); } - user1204195

@ user1204195 Lo animo a publicarlo como una nueva pregunta con detalles y código relevantes. para que llegue a una gran audiencia y obtenga la respuesta específica. - Shyju

Cree una acción de controlador con un FileStreamResult tipo de retorno.

Respondido el 12 de junio de 12 a las 21:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.