none
Como fazer um sistema de downloads com o ASP.NET Razor ? RRS feed

  • Pergunta

  • Olá pessoas,

    estou querendo fazer um sistema de downloads, tipo, que o visitante do site clica no link do download

    de algum arquivo e baixe. Mas não estou conseguindo fazer. Alguém pode me ajudar ?

    sábado, 15 de setembro de 2012 23:27

Respostas

  • @{
        // Armazenar a imagem em cache por um minuto
        Response.OutputCache(60);
     
        var fileId = UrlData[0].AsInt();
        var db = Database.Open("PhotoGallery");
        var file = db.QuerySingle("SELECT * FROM Files WHERE Id = @0", fileId);
        if (file == null)
        {
            Response.SetStatus(HttpStatusCode.NotFound);
            return;
        }
     
         string filename = file.FileTitle ;
    if (filename != "")
    {
              string path = Server.MapPath(file.Path);
              System.IO.FileInfo arquivo = new System.IO.FileInfo(path);
              if (arquivo.Exists)
              {
                       Response.Clear();
                       Response.AddHeader("Content-Disposition", "attachment; filename=" + arquivo.Name);
                       Response.AddHeader("Content-Length", arquivo.Length.ToString());
                       Response.ContentType = "application/octet-stream";
                       Response.WriteFile(arquivo.FullName);
                       Response.End();
              }
              else
              {
                       Response.Write("This file does not exist.");
              }
    }    
    }
    
    domingo, 16 de setembro de 2012 04:43

Todas as Respostas

  • Ja achei
    domingo, 16 de setembro de 2012 04:42
  • @{
        // Armazenar a imagem em cache por um minuto
        Response.OutputCache(60);
     
        var fileId = UrlData[0].AsInt();
        var db = Database.Open("PhotoGallery");
        var file = db.QuerySingle("SELECT * FROM Files WHERE Id = @0", fileId);
        if (file == null)
        {
            Response.SetStatus(HttpStatusCode.NotFound);
            return;
        }
     
         string filename = file.FileTitle ;
    if (filename != "")
    {
              string path = Server.MapPath(file.Path);
              System.IO.FileInfo arquivo = new System.IO.FileInfo(path);
              if (arquivo.Exists)
              {
                       Response.Clear();
                       Response.AddHeader("Content-Disposition", "attachment; filename=" + arquivo.Name);
                       Response.AddHeader("Content-Length", arquivo.Length.ToString());
                       Response.ContentType = "application/octet-stream";
                       Response.WriteFile(arquivo.FullName);
                       Response.End();
              }
              else
              {
                       Response.Write("This file does not exist.");
              }
    }    
    }
    
    domingo, 16 de setembro de 2012 04:43