none
Como salvar uma foto no meu FileUpload usando C# Linq ? RRS feed

  • Pergunta

  • Bom dia Galera

    Como eu salvo a foto do meu FileUpload1 usando o meu código c# linq ?

    private void onInsert()
            {
                mdc = new ModelDataContext();


                    CADASTROTIMES CADASTROTIMES = new CADASTROTIMES();

                    //INSERT CAMPOS TABELA CADASTROTIMES
                    //CONTATOS.CODIGO = int.Parse(tbCodigo.Text);
                    CADASTROTIMES.TIME = TbTime.Text.Trim().ToUpper();
                    CADASTROTIMES.DIRETOR = TbDiretor.Text.Trim().ToUpper();
                    CADASTROTIMES.CAMPO = TbCampo.Text.Trim().ToUpper();
                    CADASTROTIMES.REGIAO = DropDownRegiao.Text.Trim().ToUpper();
                    CADASTROTIMES.TELEFONE = TbTelefone.Text.Trim().ToUpper();

                   CADASTROTIMES.FOTO = ????????????????????????????????????

                    mdc.CADASTROTIMES.InsertOnSubmit(CADASTROTIMES);
                    mdc.SubmitChanges();
                


            }

    Meu FileUpload

     <asp:Label Text="Logo" ID="label9" runat="server"></asp:Label>
                                     <asp:Image ID="imgDemo" runat="server" Height="80px" Width="80px" />
                                     <asp:FileUpload ID="FileUpload1" runat="server" Width="230px"  />
                                     <asp:Button ID="btnUpload" runat="server" Text="Exibir" CssClass="button5"
                                         OnClick="btnUpload_Click" />

     protected void btnUpload_Click(object sender, EventArgs e)
            {
                if (FileUpload1.PostedFile != null)
                {
                    string FileName = Path.GetFileName(FileUpload1.PostedFile.FileName);
                    //Save files to images folder
                    FileUpload1.SaveAs(Server.MapPath("Images/" + FileName));
                    this.imgDemo.ImageUrl = "Images/" + FileName;
                }
            }

    Alguém pode me ajudar por favor ?

    Fico no aguardo.

    Obrigado.

    quinta-feira, 12 de maio de 2016 09:15

Respostas

  • Para isso voce tem que converter a imagem em um byte array e depois assocai ao seu campo CADASTROTIMES.FOTO 

    Veja esse tutorial

    https://debugmode.net/2010/05/10/inserting-and-retrieving-image-using-linq-to-sql-from-asp-net-application/

    O que voce tem que fazer é mais ou menos isso (voce vai ter que adaptar ao seu codigo)

    protected void Button1_Click(object sender, EventArgs e)
    {
    	if (FileUpload1.HasFile && FileUpload1.PostedFile.ContentLength > 0)
    	{
    		string fileName = FileUpload1.FileName;           
    		byte[] fileByte = FileUpload1.FileBytes; //converte a imagem em bytearray
    		Binary binaryObj = new Binary(fileByte);//cria um objeto do tipo binary baseado no bytearray
    
    		DataClasses1DataContext context = new DataClasses1DataContext();
    		context.ImageTables.InsertOnSubmit(
    			new ImageTable { Id = “xyz”,
    				Name = fileName,
    				FileSource = binaryObj });
    		context.SubmitChanges();
    	}
    }

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    • Marcado como Resposta Marcos SJ quinta-feira, 12 de maio de 2016 13:31
    • Não Marcado como Resposta Ricardo-ti2016 quinta-feira, 12 de maio de 2016 14:20
    • Marcado como Resposta Marcos SJ quinta-feira, 12 de maio de 2016 18:44
    quinta-feira, 12 de maio de 2016 12:56
    Moderador
  • Como eu disse, o codigo que eu postei nao é para o seu banco. Voce vai ter que adapta-lo.

    Aglo mais ou menos assim:

    private void onInsert()
            {
                mdc = new ModelDataContext();
    
    
                    CADASTROTIMES CADASTROTIMES = new CADASTROTIMES();
    
                    //INSERT CAMPOS TABELA CADASTROTIMES
                    //CONTATOS.CODIGO = int.Parse(tbCodigo.Text);
                    CADASTROTIMES.TIME = TbTime.Text.Trim().ToUpper();
                    CADASTROTIMES.DIRETOR = TbDiretor.Text.Trim().ToUpper();
                    CADASTROTIMES.CAMPO = TbCampo.Text.Trim().ToUpper();
                    CADASTROTIMES.REGIAO = DropDownRegiao.Text.Trim().ToUpper();
                    CADASTROTIMES.TELEFONE = TbTelefone.Text.Trim().ToUpper();
    				byte[] fileByte = FileUpload1.FileBytes; //converte a imagem em bytearray
    				Binary binaryObj = new Binary(fileByte);//cria um objeto do tipo binary baseado no bytearray
                   CADASTROTIMES.FOTO = binaryObj;
    
                    mdc.CADASTROTIMES.InsertOnSubmit(CADASTROTIMES);
                    mdc.SubmitChanges();
                
    
    
            }


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    • Marcado como Resposta Marcos SJ quinta-feira, 12 de maio de 2016 18:44
    quinta-feira, 12 de maio de 2016 14:32
    Moderador

Todas as Respostas

  • Para isso voce tem que converter a imagem em um byte array e depois assocai ao seu campo CADASTROTIMES.FOTO 

    Veja esse tutorial

    https://debugmode.net/2010/05/10/inserting-and-retrieving-image-using-linq-to-sql-from-asp-net-application/

    O que voce tem que fazer é mais ou menos isso (voce vai ter que adaptar ao seu codigo)

    protected void Button1_Click(object sender, EventArgs e)
    {
    	if (FileUpload1.HasFile && FileUpload1.PostedFile.ContentLength > 0)
    	{
    		string fileName = FileUpload1.FileName;           
    		byte[] fileByte = FileUpload1.FileBytes; //converte a imagem em bytearray
    		Binary binaryObj = new Binary(fileByte);//cria um objeto do tipo binary baseado no bytearray
    
    		DataClasses1DataContext context = new DataClasses1DataContext();
    		context.ImageTables.InsertOnSubmit(
    			new ImageTable { Id = “xyz”,
    				Name = fileName,
    				FileSource = binaryObj });
    		context.SubmitChanges();
    	}
    }

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    • Marcado como Resposta Marcos SJ quinta-feira, 12 de maio de 2016 13:31
    • Não Marcado como Resposta Ricardo-ti2016 quinta-feira, 12 de maio de 2016 14:20
    • Marcado como Resposta Marcos SJ quinta-feira, 12 de maio de 2016 18:44
    quinta-feira, 12 de maio de 2016 12:56
    Moderador
  • Bom dia Willian

    Obrigado pela resposta

    Porem eu não entendi.

    Eu criei no meu bando de dados um campo com o

    nome foto do tipo image

    Esse campo é do proprio sql server 2014

    Eu não entendi porque vc usou os 3 campos

    Id = “xyz”,
    				Name = fileName,
    				FileSource = binaryObj
    

    Fico no aguardo.

    Obrigado.

    quinta-feira, 12 de maio de 2016 14:22
  • Como eu disse, o codigo que eu postei nao é para o seu banco. Voce vai ter que adapta-lo.

    Aglo mais ou menos assim:

    private void onInsert()
            {
                mdc = new ModelDataContext();
    
    
                    CADASTROTIMES CADASTROTIMES = new CADASTROTIMES();
    
                    //INSERT CAMPOS TABELA CADASTROTIMES
                    //CONTATOS.CODIGO = int.Parse(tbCodigo.Text);
                    CADASTROTIMES.TIME = TbTime.Text.Trim().ToUpper();
                    CADASTROTIMES.DIRETOR = TbDiretor.Text.Trim().ToUpper();
                    CADASTROTIMES.CAMPO = TbCampo.Text.Trim().ToUpper();
                    CADASTROTIMES.REGIAO = DropDownRegiao.Text.Trim().ToUpper();
                    CADASTROTIMES.TELEFONE = TbTelefone.Text.Trim().ToUpper();
    				byte[] fileByte = FileUpload1.FileBytes; //converte a imagem em bytearray
    				Binary binaryObj = new Binary(fileByte);//cria um objeto do tipo binary baseado no bytearray
                   CADASTROTIMES.FOTO = binaryObj;
    
                    mdc.CADASTROTIMES.InsertOnSubmit(CADASTROTIMES);
                    mdc.SubmitChanges();
                
    
    
            }


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    • Marcado como Resposta Marcos SJ quinta-feira, 12 de maio de 2016 18:44
    quinta-feira, 12 de maio de 2016 14:32
    Moderador
  • Bom dia Willian

    Problema resolvido

    Muito Obrigado

    Valeu!!!

    sexta-feira, 13 de maio de 2016 09:44