none
Duvida C# Salvar arquivos RRS feed

  • Pergunta

  • Estou com uma pequena duvida referente ao salvamento de arquivos no codigo...

    estou tentando fazer o seguinte:

    dentro de uma Gridview em asp.net faco o upload de um arquivo .doc e nessa mesma grid tem um botao visualizar.

    qual minha duvida, necessito que ao clicar em visualizar apareca aquela caixa de mensagem do

    internet explorer com as opcoes Abrir,Salvar e Cancelar so que nao sei como fazer...

    estou fazendo o codigo em C#.

    se alguem puder me ajudar agradeco.

    quarta-feira, 28 de setembro de 2011 13:57

Respostas

  •  

    http://www.israelaece.com/post/Trabalhando-com-Arquivos.aspx


    --
    Marque as respostas e ajude a melhorar a busca do fórum. pcfviana@gmail.com
    quarta-feira, 28 de setembro de 2011 14:12
  • segue

    http://www.developerfusion.com/code/4669/save-a-stream-to-a-file/

    http://www.devasp.net/net/articles/display/737.html


    Não esqueça de usar o componente </> na barra para posta seu código. Microsoft MCPD,MCTS,MCC
    quinta-feira, 29 de setembro de 2011 11:34
    Moderador
  • Oi,

    Existem 2 formas de enviar o arquivo do servidor para o client :

    Você pode simplesmente criar um link para o arquivo no seu servidor

    ou

    Você pode criar um ashx que leia o arquivo e transmita para o client

     

    Para o client o resultado das duas formas a principio não tem diferença. Porém você, do servidor, não comanda a aparição da mensagem "abrir, salvar, cancelar", isso é uma configuração do browser na máquina do usuário.

    Dependendo da configuração do browser, o arquivo pode ser aberto automaticamente e até mesmo de forma integrada ao browser. É isso que ocorre com frequencia com alguns tipos de arquivos mais comuns como .doc e .pdf.

    Se o browser não estiver configurado para abrir automaticamente, ai sim as opções com relação a abrir, salvar, aparecerão.

    O único - mínimo - controle que você pode ter sobre isso é que se optar por usar um ashx existe como adicionar um header que force o download ao invés da abertura automática, mas não tenho tanta certeza que gere o mesmo efeito com "Abrir, salvar, cancelar" que você deseja.

    Veja mais sobre o header que estou citando em http://www.bufaloinfo.com.br/dicas.aspx?cod=368


    Abs,


    Dennes
    MCT,MCPD,MCITP,MCDBA

    Conheça o devASPNet no Facebook - http://facebook.com/devASPNet


    Dennes - Se resolveu, classifique a mensagem, por favor - [http://www.bufaloinfo.com.br] NOVO DVD Segurança no ASP.NET : http://www.bufaloinfo.com.br/LearingSeriesSegurancaASPNET2.asp
    sábado, 1 de outubro de 2011 23:20

Todas as Respostas

  •  

    http://www.israelaece.com/post/Trabalhando-com-Arquivos.aspx


    --
    Marque as respostas e ajude a melhorar a busca do fórum. pcfviana@gmail.com
    quarta-feira, 28 de setembro de 2011 14:12
  • segue

    http://www.developerfusion.com/code/4669/save-a-stream-to-a-file/

    http://www.devasp.net/net/articles/display/737.html


    Não esqueça de usar o componente </> na barra para posta seu código. Microsoft MCPD,MCTS,MCC
    quinta-feira, 29 de setembro de 2011 11:34
    Moderador
  • Oi,

    Existem 2 formas de enviar o arquivo do servidor para o client :

    Você pode simplesmente criar um link para o arquivo no seu servidor

    ou

    Você pode criar um ashx que leia o arquivo e transmita para o client

     

    Para o client o resultado das duas formas a principio não tem diferença. Porém você, do servidor, não comanda a aparição da mensagem "abrir, salvar, cancelar", isso é uma configuração do browser na máquina do usuário.

    Dependendo da configuração do browser, o arquivo pode ser aberto automaticamente e até mesmo de forma integrada ao browser. É isso que ocorre com frequencia com alguns tipos de arquivos mais comuns como .doc e .pdf.

    Se o browser não estiver configurado para abrir automaticamente, ai sim as opções com relação a abrir, salvar, aparecerão.

    O único - mínimo - controle que você pode ter sobre isso é que se optar por usar um ashx existe como adicionar um header que force o download ao invés da abertura automática, mas não tenho tanta certeza que gere o mesmo efeito com "Abrir, salvar, cancelar" que você deseja.

    Veja mais sobre o header que estou citando em http://www.bufaloinfo.com.br/dicas.aspx?cod=368


    Abs,


    Dennes
    MCT,MCPD,MCITP,MCDBA

    Conheça o devASPNet no Facebook - http://facebook.com/devASPNet


    Dennes - Se resolveu, classifique a mensagem, por favor - [http://www.bufaloinfo.com.br] NOVO DVD Segurança no ASP.NET : http://www.bufaloinfo.com.br/LearingSeriesSegurancaASPNET2.asp
    sábado, 1 de outubro de 2011 23:20
  • Wesley

    Recentemente precisei de algo parecido, mas para download de arquivos:

    // Se for arquivo via ftp.
    //------------------------------
    byte[] _downFile = FTP.DownloadFileFromFtp(_filesInFolder[key]);
    _fname = _filesInFolder[key];
    _fname = Path.GetFileName(_filesInFolder[key]);
    try
    {
        Response.ContentType = "application/" + _fname.Split('.')[1];
        Response.AddHeader("Content-disposition", "attachment; filename=" + _fname);
        Response.OutputStream.Write(_downFile, 0, _downFile.Length);
        Response.End();
    }
    catch (System.Threading.ThreadAbortException)
    {
    }
    catch (Exception)
    {
    }
     
     
     
    // Se for arquivo em pasta do server
    //----------------------------------------
     // Pega o arquivo zip gerado e transforma e bytes para salvar
    _fname = Path.GetFileName(strNomeArquivoZip);
    try
    {
        // Solicita local pra salvar
        fs = File.OpenRead(strNomeArquivoZip);
        byte[] buffer = new byte[fs.Length];
        fs.Read(buffer, 0, buffer.Length);
     
        fs.Flush(); fs.Close(); fs.Dispose();
        // remove o arquivo zip
        try { System.IO.File.Delete(strNomeArquivoZip); }
        catch { }
     
        Session["strNomeArquivoZip"] = strNomeArquivoZip;
        Response.ContentType = "application/" + _fname.Split('.')[1];
        Response.AddHeader("Content-disposition", "attachment; filename=" + _fname);
        Response.OutputStream.Write(buffer, 0, buffer.Length);
        Response.End();
    }
    catch (System.Threading.ThreadAbortException)
    {
    }
    catch (Exception)
    {
    }
    finally
    {
        try
        {
            if (fs != null)
            {
                fs.Flush(); fs.Close(); fs.Dispose();
            }
        }
        catch
        { }
    }

     

    domingo, 2 de outubro de 2011 11:32