none
Atribuir uma Imagem em uma Classe - Projeto MVC RRS feed

  • Pergunta

  • Olá!

    Estou tentando atribuir uma imagem em uma classe Player, que recebe Id, Nome, Idade, etc... e quero atribuir uma foto também, porém, pesquisando em alguns fóruns não encontrei uma solução que servisse.

    Vou explicar minha ideia:

    A Classe Player é da seguinte forma:

     public class Player
        {
            public int Id { get; set; }
            public string Nome { get; set; }
            public int Idade { get; set; }
            public int PositionId { get; set; }
            public double ValorMercado { get; set; }
            public Position Position { get; set; }
            public PlayerStatus Status { get; set; }
    
            public Player()
            {
    
            }
    
            public Player(int id, string nome, int idade, double valorMercado, Position position, PlayerStatus status)
            {
                Id = id;
                Nome = nome;
                Idade = idade;
                ValorMercado = valorMercado;
                Position = position;
                Status = status;           
            }        
        }

    Eu populo o DB com a classe SeedingService:

    Player j1 = new Player(1, "Paulo Victor", 20, 300000.00, pp1, PlayerStatus.Ativo);

    O que eu precisava era aqui no SeedingService, conseguir enviar a foto desta forma também, da mesma forma que envio o restante, mais ou menos assim:

    Player j1 = new Player(1, "Paulo Victor", 20, 300000.00, pp1, PlayerStatus.Ativo,"IMAGEM");

    Depois eu busco estes dados para criar uma lista no meu projeto e apresentaria a imagem no formulário, assim como todo o resto.

    Alguém tem uma ideia de como eu poderia fazer isso?

    sexta-feira, 24 de abril de 2020 18:00

Todas as Respostas

  • Você pode gravar a imagem como Base64 ou então gravar o caminho dela e salvar ela fisicamente no servidor.

    Att

    sábado, 25 de abril de 2020 13:04
  • Criei um método de byte[] para tentar salvar a imagem. Porém não salva no banco.

    A classe ficou assim:

    namespace SoccerMVC.Models
    {
        public class Player
        {    
            
            [Display(Name = "Foto Perfil")]
            public byte[] ProfileImage { get; set; } 
    
            public int Id { get; set; }
    
            public string Nome { get; set; }
    
            public int Idade { get; set; }
    
            public double ValorMercado { get; set; }
           
            public PlayerStatus Status { get; set; }
           
        }
    }
    

    Alterei o método ProfileImage para string só para testar e como string ele salva o texto que envio no banco.

    Porém quando altero para byte[] novamente e altero o input no Create.cshtml para type="file" o arquivo, seja ele foto ou não, não sobe mais para o banco. Não sei se talvez o erro não possa estar no banco do MySQL mesmo

    Como faço para usar o Base64?

    Não é desta mesma forma né?


    • Editado Otavio_tnk segunda-feira, 27 de abril de 2020 02:02 Descrição da classe
    segunda-feira, 27 de abril de 2020 01:29
  • Não, base64 ele grava como string mesmo

    https://docs.microsoft.com/pt-br/dotnet/api/system.convert.tobase64string?view=netcore-3.1

    Att

    terça-feira, 28 de abril de 2020 00:26