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

PHP & Base de données Discussion :

Images dans une base SQL Server [SQL-Server]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 14
    Points : 10
    Points
    10
    Par défaut Images dans une base SQL Server
    Bonjour,

    je souhaite inserer des images dans une base SQL Server. J'utilise pour cela un morceau de code que j'ai trouvé sur le forum :

    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
     
    //storing a file
    $datastring = file_get_contents("images/46.gif");
    $data = unpack("H*hex", $datastring);
    mssql_query("insert into WSOCIETE (CODESOC , LOGO)
             values ('04', 0x".$data['hex'].")");
     
    // retrieving
    $result = mssql_query("select LOGO from WSOCIETE where CODESOC = '04'");
    $row = mssql_fetch_assoc($result);
    $image = $row['LOGO'];		 
    $fichier=fopen("images/img_tmp.gif","w");
    fwrite($fichier,$image);
    fclose($fichier);		 
     
    echo "<img src=\"images/img_tmp.gif\">";
    ça fonctionne bien, sauf que l'image affichée est tronquée. Et je ne sais pas si c'est lors de l'insertion ou lors de la réstitution que ça se produit.

    Comment puis-je résoudre ce problème?

    Merci d'avance.

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Peux-tu m'expliquer à quoi ca sert de stocker des images sur le serveur si c'est pour ensuite les écrire sur le disque

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    L'idée est de tout stocker au même endroit. Mais je comprends bien ce que tu veux dire.

    Y'a t'il un moyen pour lire l'image stockée dans la base sans la ré-écire sur le disque? Et surtout, pourquoi l'image réstituée n'est pas entière?

  4. #4
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Visiblement ca serait lié à SQLServer (format de la colonne ? mauvaise insertion ? ...), car le code php semble correct.

    sinon au lieu de faire un fwrite, tu fais un echo vers le navigateur, en ayant pris soin de renvoyer les bon headers (image/png par exemple). Ton script dois alors être dédié à la fourniture d'image
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="img.php?id_img=12" />

  5. #5
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Merci Mr N., je vais voir du coté de la base. Sinon, ça marche pour le header et un echo sur une page dédiée.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 7
    Points : 7
    Points
    7
    Par défaut Réponse tardive
    Mieux vaut tard que jamais,

    Pour les égarés de SQL server 2000, il y a une contrainte sur le textsize. Voici les requètes à faire :
    SET TEXTSIZE 2147483647
    SET TEXTLIMIT 2147483647

    L'autres solutions, ne mettait pas vos images en base (et passé sur un base libre mySQL est très bien, postgres aussi).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Stockage d'image dans une base sql server
    Par rafik1f dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 24/03/2007, 10h07
  2. stockage word en xml dans une base sql server 2005
    Par morados dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/10/2006, 10h47
  3. Réponses: 2
    Dernier message: 15/07/2006, 12h29
  4. [ODBC] [SQL-Server] affichage d'une image stockée dans une base sql server
    Par ahlemag dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 29/06/2006, 15h45
  5. Réponses: 5
    Dernier message: 10/05/2006, 15h47

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