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

ASP.NET Discussion :

Mettre une image dans une base de données


Sujet :

ASP.NET

  1. #1
    Candidat au Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Avril 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2014
    Messages : 7
    Points : 4
    Points
    4
    Par défaut Mettre une image dans une base de données
    Bonjour,
    J'aimerai mettre une image dans la db, j'ai cree une colonne de type Image (J'ai d'autres donnees dans la table). Ensuite j'ai mis dans la vue le code suivant :

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="file" id="Image" name="Image" size="40" accept="image/jpeg"/>

    Dans mon model :

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    public byte[] Image { get; set; }

    Et dans mon controller :

    Code C# : 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
     [HttpPost]
            public ActionResult Create(ContentViewModel model)
            {
                        HttpPostedFileBase file = Request.Files["Image"];
                        contentViewModel.Image = ConvertToBytes(file);
                        db.Contents.Add(model);
                        db.SaveChanges();
                        return RedirectToAction("Index");
            }
     
            public byte[] ConvertToBytes(HttpPostedFileBase image)
            {
                byte[] imageBytes = null;
                BinaryReader reader = new BinaryReader(image.InputStream);
                imageBytes = reader.ReadBytes((int)image.ContentLength);
                return imageBytes;
            }

    Quand j'essaye d'inserer les donnees dans la db j'obtiens l'erreur suivante :

    The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or an illegal character among the padding characters.

    Pourriez-vous m'aider s'il vous plait?

    Merci d'avance.

  2. #2
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 233
    Points : 336
    Points
    336
    Par défaut
    Le type de ton champ en base de données ?
    "Hope for the best, but prepare for the worst."

  3. #3
    Candidat au Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Avril 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2014
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    J'ai mis comme type ' Image ' !

    J'ai remis [varbinary](MAX) pour tester mais j'obtiens cette erreur :

    Object reference not set to an instance of an object.

    Merci.

  4. #4
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2014
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Août 2014
    Messages : 218
    Points : 493
    Points
    493
    Par défaut
    Bonjour

    Type de base de données ? Sql Server ? quelle version ?

    Quel est le type de la variable db ?

    Quand le champs est de type varbinary(MAX) quelle instruction lève l'erreur "Object reference not set to an instance of an object" ?

    Tu travailles avec EF ?
    Beaucoup trop d'hommes viennent au monde : l'Etat a été inventé pour ceux qui sont superflus. (Friedrich Nietzsche)

  5. #5
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 233
    Points : 336
    Points
    336
    Par défaut
    Citation Envoyé par Paul_75 Voir le message
    Object reference not set to an instance of an object.
    A quel moment ? "BinaryReader reader = new BinaryReader(image.InputStream);" Ici ?
    "Hope for the best, but prepare for the worst."

  6. #6
    Candidat au Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Avril 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2014
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Oui oui exactement : "BinaryReader reader = new BinaryReader(image.InputStream);"

    Je travaille avec Microsoft SQL Server Management Studio.

  7. #7
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 233
    Points : 336
    Points
    336
    Par défaut
    Citation Envoyé par Paul_75 Voir le message
    Oui oui exactement : "BinaryReader reader = new BinaryReader(image.InputStream);"
    L'erreur vient de là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HttpPostedFileBase file = Request.Files["Image"];
    Request.Files["Image"] ne contient rien (ou plutôt contient "null").

    Ton image vient d'où ?
    "Hope for the best, but prepare for the worst."

  8. #8
    Candidat au Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Avril 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2014
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par casiii Voir le message
    L'erreur vient de là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HttpPostedFileBase file = Request.Files["Image"];
    Request.Files["Image"] ne contient rien (ou plutôt contient "null").

    Ton image vient d'où ?
    En fait dans View j'ai mis <input type="file" id="Image" name="Image" size="40" accept="image/jpeg"/> qui me permet de telecharger l'image.

  9. #9
    Candidat au Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Avril 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2014
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par Paul_75 Voir le message
    En fait dans View j'ai mis <input type="file" id="Image" name="Image" size="40" accept="image/jpeg"/> qui me permet de telecharger l'image.
    J'ai reessaye et j'ai encore une fois cette erreur : The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or an illegal character among the padding characters.

    J'ai remis ceci :

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <div>
        @using (Html.BeginForm("Create","Image", FormMethod.Post, new { enctype ="multipart/form-data" }))
        { 
             <input type="file" id="Image" name="Image" size="40" accept="image/jpeg"/>
        }   
    </div>

    Quand je clique sur Create j'ai plus aucune erreur mais par contre le programme ne fait rien!!

  10. #10
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 233
    Points : 336
    Points
    336
    Par défaut
    Remplace HttpPostedFileBafe par HttpPostedFile ?
    "Hope for the best, but prepare for the worst."

  11. #11
    Candidat au Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Avril 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2014
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par casiii Voir le message
    Remplace HttpPostedFileBafe par HttpPostedFile ?
    Je l'ai fait mais il y a une erreur de syntaxe au niveau du Request.Files: HttpPostedFile file = Request.Files["Image"];

  12. #12
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 233
    Points : 336
    Points
    336
    Par défaut
    Citation Envoyé par Paul_75 Voir le message
    Je l'ai fait mais il y a une erreur de syntaxe au niveau du Request.Files: HttpPostedFile file = Request.Files["Image"];
    Désolé, c'est le seul truc que j'ai pu voir (j'utilise tout le temps asp:FileUpload)
    "Hope for the best, but prepare for the worst."

  13. #13
    Membre averti

    Développeur .NET
    Inscrit en
    Juillet 2008
    Messages
    176
    Détails du profil
    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juillet 2008
    Messages : 176
    Points : 310
    Points
    310
    Par défaut
    Je ne suis pas sûr que tu puisses faire : HttpPostedFileBase file = Request.Files["Image"];

    Essaie plutôt HttpPostedFileBase file = Request.Files[0];

Discussions similaires

  1. [Débutant] Manipulation d'images : intégrer une image dans une image
    Par noscollections dans le forum VB.NET
    Réponses: 2
    Dernier message: 17/10/2014, 11h51
  2. quel code pour enregistrer une image dans la base de donnée
    Par bambi98 dans le forum Bases de données
    Réponses: 1
    Dernier message: 15/05/2009, 15h55
  3. enregistrer une image dans ma base de données
    Par beet2che dans le forum VB.NET
    Réponses: 7
    Dernier message: 14/10/2008, 15h56
  4. [MySQL] sauver une image dans la base de donnée?
    Par bebas dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 04/05/2007, 11h26
  5. Introduire une image dans la base de données
    Par ghassenus dans le forum Bases de données
    Réponses: 4
    Dernier message: 04/04/2006, 10h09

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