none
Fazer upload e download com Fileupload RRS feed

  • Pergunta

  • Pessoal boa tarde!!!

    Seguinte eu preciso fazer um upload e depois um download de arquivos para o ftp da minha aplicação. Pensei usar o Fileupload do asp.net.

    Ai surgiu minha duvida , como faço isso ?

    Se alguem pode me passar algum exemplo eu agradeço!

    Eu usando Visual Studio 2005 com C#.

    Obrigado a todos.
    Danilo Molina
    sexta-feira, 17 de abril de 2009 15:13

Respostas

Todas as Respostas

  • Danilo,

    Uma boa solução é utilizar o FileUpload (at. http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.fileupload.aspx) para carregar os arquivos e usar como modelo o artigo http://msdn.microsoft.com/pt-br/library/ms229715.aspx para levar os arquivos do fileupload para o ftp.

    Para baixar os arquivos do FTP, recomendo dar uma olhada neste outros artigos que pode servir de modelo para descobrir quais arquivos estão no ftp (at. http://msdn.microsoft.com/pt-br/library/ms229716.aspx) e depois baixá-los (at. http://msdn.microsoft.com/pt-br/library/ms229711.aspx ).

    Espero ter ajudado.

    Obs.:

    Para não ter que ficar salvando arquivos no servidor Web, utilize a propriedade FileBytes (at. http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.fileupload.filebytes.aspx ) para levar unicamento os bytes do fileupload sob forma de stream para o ftp.
    Paulo R. Pereira
    • Sugerido como Resposta Paulo R. Pereira sexta-feira, 17 de abril de 2009 22:41
    • Marcado como Resposta Danilo.M.Molina segunda-feira, 20 de abril de 2009 11:19
    sexta-feira, 17 de abril de 2009 22:40
  • aproveitando o topico...

    to com 1 problema no fileupload

    ele ta lendo o execunenonquery e pulando pro catch nao sei pq

    protected void btnAtualizar_Click1(object sender, EventArgs e)
        {
    
            
            {
                if (FileUpload1.PostedFile == null || string.IsNullOrEmpty(FileUpload1.PostedFile.FileName) || FileUpload1.PostedFile.InputStream == null)
                {
                    lblmsg.Text = "Erro - Não foi possível enviar o arquivo.";
                    return;
                }
                else
                {
    
                    using (SqlConnection Conn = new SqlConnection("Data Source=pc\\SQLEXPRESS;Initial Catalog=Fotos;Integrated Security=True"))
                    {
    
    
    
    
    
                        try
                        {
    
    
                            // SqlConnection con = new SqlConnection("Data Source=pc\\SQLEXPRESS;Initial Catalog=Fotos;Integrated Security=True");
    
                            // const string SQL = "INSERT INTO [Imagens] ([horaUpload],  [imagem]) VALUES (@horaUpload,  @imagem)";
    
                            // SqlCommand comando = new SqlCommand("insert into Imagens(Imagem,horaUpload) values('"+imagem+"','"+date+"')", con);
    
                            const string SQL = "INSERT INTO [Imagens] ([horaUpload], [Imagem]) VALUES   ( @horaUpload, @imagem)";
    
    
                            SqlCommand cmd = new SqlCommand(SQL, Conn);
    
                           byte[] imageBytes = new byte[FileUpload1.PostedFile.InputStream.Length +1 ];
    
                                                        FileUpload1.PostedFile.InputStream.Read(imageBytes, 0, imageBytes.Length);
    
    
                                                        
                                                       cmd.Parameters.AddWithValue("@Imagem" , imageBytes) ;
                                                        cmd.Parameters.AddWithValue("@horaUpload", DateTime.Now);
    
                            
                            Conn.Open();
                            cmd.ExecuteNonQuery();
                            Conn.Close();
                        }
                        catch
                        {
                            lblmsg.Text = "Erro ao enviar imagem";
                            Conn.Close();
                        }
                    }
    
    
    
    
                }
            }
        }
    sábado, 18 de abril de 2009 16:02
  • Thiago,

    Altere o bloco catch para catch(Exception ex) , debug a aplicacao e cheque a propriedade Message da exceção ex para ver o erro que está occorrendo.

    Qquer coisa, poste os detalhes do erro aqui.

    []s
    Robson Castilho - Desenvolvedor C# - MCTS .Net 2.0 Windows Applications
    domingo, 19 de abril de 2009 03:15
  • Paulo ajudou e muito , muito obrigado!

    Até mais.
    Danilo Molina
    segunda-feira, 20 de abril de 2009 11:19

  • Pessoal estou tentando fazer o upload para o FTP so que ele faz o upload de um arquivo com outro nome e sem extensão ... o arquivo fica com outro nome no FTP e sem a extensão ... e ao fazer um upload de outro arquivo ele substitui o arquivo que ja estava la pelo outro , alterando apenas o tamanho.

    Alguem sabe porque isto ocorre ? Aonde eu estou errando? Abaixo segue o codigo que esta em um botão :
    protected
     void
     Button1_Click(object
     sender, EventArgs e)
        {
           // Obter o objeto usado para se comunicar com o servidor.
    
            FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://ftp.meuftp.com.br/industrial"
    );
            request.Method = WebRequestMethods.Ftp.UploadFile;
    
            // Este exemplo assume a FTP site utiliza de logon anônimo.
    
            request.Credentials = new
     NetworkCredential("usuario"
    , "senha"
    );
    
            // Copie o conteúdo do arquivo para o pedido stream.
    
            StreamReader sourceStream = new
     StreamReader(FileUpload1.FileContent);
            byte
    [] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
            sourceStream.Close();
            request.ContentLength = fileContents.Length;
    
            Stream requestStream = request.GetRequestStream();
            requestStream.Write(fileContents, 0, fileContents.Length);
            requestStream.Close();
    
            FtpWebResponse response = (FtpWebResponse)request.GetResponse();
    
            Label5.Visible = true
    ;
            Label5.Text = "Arquivo salvo com sucesso!"
    ;
    
            response.Close(); 
    
    
        }
    

    Danilo Molina
    segunda-feira, 20 de abril de 2009 14:21