IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Herberger une image et le récupérer


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 102
    Par défaut Herberger une image et le récupérer
    Bonjours, bonsoirs,
    Depuis quelque jour, j'essaye d'améliorer mon logiciel.
    J'essaye de réorganiser mes tables etc... de MySQL, mais d'un côté, dans mon logiciel chaque utilisateur pourra mettre une image de profil.
    J'arrive a le faire, si je met le lien dans la table SQL, mais, je trouve pas très pratique que l'utilisateur va dans un site d'hébergement d'image qui ensuite donne le lien.
    Alors j'essaie de mettre l'image dans la bdd, voici ce que j'ai fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    byte[] blob;
            private void ConnectDataSQL()
            {
                using (MD5 md5Hash = MD5.Create())
                {
                    hash = GetMd5Hash(md5Hash, this.user_mdp);
     
                    Console.WriteLine("The MD5 hash of " + this.user_mdp + " is: " + hash + ".");
     
                    Console.WriteLine("Verifying the hash...");
     
                    if (VerifyMd5Hash(md5Hash, this.user_mdp, hash))
                    {
                        Console.WriteLine("The hashes are the same.");
                    }
                    else
                    {
                        Console.WriteLine("The hashes are not same.");
                    }
                }
                var userHost = Dns.GetHostName();
                var GetComputer_InternetIP = Dns.GetHostEntry(userHost).AddressList[1].ToString();
                rpgmshare.Connect c = new rpgmshare.Connect();
                MySqlConnection conn = new MySqlConnection("SERVER = " + c.serverName + "; PORT = " + c.serverHost + "; DATABASE = " + c.serverDbd + "; USERID = " + c.serverId + "; PASSWORD = " + c.serverMdp);
                conn.Open();
                MySqlCommand ip_user = new MySqlCommand("UPDATE User SET ip ='" + GetComputer_InternetIP.ToString() + "' WHERE username='" + this.user_pseudo + "'", conn);
                MySqlCommand verify_user = new MySqlCommand("SELECT userid, email, date, ip, image FROM User WHERE username='" + this.user_pseudo + "' and password = '" + hash + "'", conn);
                try
                {
                    MySqlDataReader reader_verify_user = verify_user.ExecuteReader();
                    if (reader_verify_user.HasRows)
                    {
                        while (reader_verify_user.Read())
                        {
                            ID = reader_verify_user.GetInt32(0);
                            email = reader_verify_user.GetString(1);
                            date_inscrit = reader_verify_user.GetString(2);
                            IP = reader_verify_user.GetString(3);
                            image_profil = reader_verify_user.GetString(4);
                            blob = (byte[])reader_verify_user[4];
                        }
                        reader_verify_user.Close();
                        conn.Close();
                        conn.Open();
                        ip_user.ExecuteNonQuery();
                        conn.Close();
                        conn.Open();
                        MySqlCommand verify_user_connexion = new MySqlCommand("SELECT userid FROM Connexion WHERE userid = '" + ID + "'", conn);
                        MySqlDataReader reader_user_connexion = verify_user_connexion.ExecuteReader();
                        if (reader_user_connexion.HasRows)
                        {
                            reader_user_connexion.Close();
                            if (MessageBox.Show("Vous êtes déjà connecter!\nSe reconnecter?", "Server", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
                            {
                                MySqlCommand delete_connexion = new MySqlCommand("DELETE FROM Connexion WHERE userid = '" + ID + "'", conn);
                                try
                                {
                                    delete_connexion.ExecuteNonQuery();
                                    conn.Close();
                                    ConnectDataSQL();
                                }
                                catch (Exception)
                                {
                                    throw;
                                }
                            }
                        }
                        else
                        {
                            reader_user_connexion.Close();
                            conn.Close();
                            conn.Open();
                            MySqlCommand insert_connexion = new MySqlCommand("INSERT INTO Connexion(IP, userid, last_connexion) VALUE('" + GetComputer_InternetIP.ToString() + "', '" + ID + "', '" + DateTime.Now.ToString() + "')", conn);
                            insert_connexion.ExecuteNonQuery();
                            conn.Close();
                            GetFriends();
                            //this.reussite = true;
                            //a.BeginInvoke((MethodInvoker)(() => a.Show()));
                        }
                    }
                    else
                    {
                        MessageBox.Show("L'identifiant ou le mot de passe est incorrect!", "Connexion", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        this.reussite = false;
                    }
                    conn.Close();
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.ToString());
                    throw;
                }
            }
    Ensuite dans form accueil je récupére le byte et j'essaye de le convertir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    public Accueil(int ID, string Username, string Email, string Date_Inscrit, byte[] Image_Profil)
            {
                InitializeComponent();
                this.tabPage4.Text = Username;
                this.user_id = ID;
                this.username = Username;
                this.email = Email;
                this.metroTabControl1.SelectedIndex = 0;
                Games_DBB();
                CreateListGames();
                this.dateProfil.Text = "Inscrit le : \n" + Date_Inscrit;
                MemoryStream ms = new MemoryStream(Image_Profil);
                this.ImgProfil.Image = Image.FromStream(ms);
                this.ImgMiniProfil.Image = Image.FromStream(ms);
            }
     
            private Image byteArrayToImage(byte[] byteArrayIn)
            {
                MemoryStream ms = new MemoryStream(byteArrayIn);
                ms.Position = 0;
                Image returnImage = Image.FromStream(ms);
                return returnImage;
            }
    Bref, j'ai essayer plusieurs manière, mais fonctionne pas soit l'erreur de Image.FromStream "Manque de paramètre".
    Que des soucis, alors je vient vers vous si vous pouviez m'aidez.

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218

Discussions similaires

  1. [Mpeg4] récupérer une image d'un flux MPEG4.
    Par Drizztrobber dans le forum Multimédia
    Réponses: 10
    Dernier message: 19/03/2007, 10h01
  2. [Debutant] Récupérer le nom d'une image
    Par Djoul dans le forum Débuter
    Réponses: 4
    Dernier message: 30/05/2005, 09h52
  3. Récupérer la taille d'une image dans un fichier (GIF/JPEG)
    Par SheikYerbouti dans le forum Multimédia
    Réponses: 4
    Dernier message: 12/05/2005, 14h17
  4. [Swing] récupérer une image d'un composant
    Par klemouf dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 16/09/2004, 10h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo