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

Installation MySQL Discussion :

[SGBD] [Image] BLOB mysql, probléme de restitution ( et/ou insertition ? )


Sujet :

Installation MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Par défaut [SGBD] [Image] BLOB mysql, probléme de restitution ( et/ou insertition ? )
    bonjour,
    j'ai un formulaire simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <form method="post" action="#" enctype="multipart/form-data">
    <input type="file" name="fichier" size="30"/>
    <input type="submit" value="envoyer"/>
    </form>
    je recupere et stocke le fichier de cette maniére :
    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
     
    function insertFileForAgent($param)
    {
    	if(isset($_FILES['fichier']))
    	{
    	$tmp_file = $_FILES['fichier']['tmp_name'];
    	$type_file = $_FILES['fichier']['type'];
     
    		if(!is_uploaded_file($tmp_file))
    		{
    		 die("Le fichier n'a pas pu être uploader...");
    		}
    	if( !strstr($type_file, 'application/vnd.ms-excel'))
    	    {
    	        exit("Le fichier n'est pas un document MS excel".$type_file);
    	    }
    	$fp=fopen($_FILES['fichier']['tmp_name'],'rb');
    	$content=fread($fp,filesize($_FILES['fichier']['tmp_name']));
    	fclose($fp);
    	$test2=addslashes($content);
     
    		$q="INSERT INTO `matable` 
    		(`XLS` )
    		VALUES 
    		('$test2')";
    		mysql_query($q) or die(mysql_error());
    	}
    }

    pour tester ce que donne le BLOB, je l'affiche et le stocke dans un fichier, de cette maniere :
    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
     
    function mk_excel($content)
    {
    $fp=fopen('tttttttt.xls','rb');
    fwrite($fp,$content,strlen($content));
    fclose($fp);
    }
     
    header("Content-Type: application/vnd.ms-excel"); 
     
    $blobContent=stripslashes(mysql_result(mysql_query("SELECT XLS FROM `evaluation` WHERE id='14' LIMIT 1"),0,'XLS'));
    //valeur de ID edité a chaque fois...  car phase test...
     
    mk_excel($blobContent);
     
    echo $blobContent;
     
    die();
    et avec tout ces bouts de codes, le resultat :

    un fichier excel "auto telechargé" mais illisible ( binaire dans cellules )...
    sur le serveur, un fichier excel nommé "tttttttt.xls"
    qui fonctionne, mais avec 4alerts excel, disant que ~
    " le fichier a été endommagé etc.... des macros et/ou formules peuvent manquer "
    ensuite, il charge, et le fichier excel s'affiche...
    mais pas comme il faut .. rajout d'une feuille "feuille 1" et contenu de feuille 1 origine mis dans feuille 2..

  2. #2
    Membre chevronné Avatar de dj-julio
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 745
    Par défaut
    Est ce que je peux me permettre de te déconseiller le stockage de fichier (images, doc, sons, ...) en base de données ?

    sinon, je ne peux pas t'aider désolé.
    bon développement

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Par défaut
    bonjour,

    Est ce que je peux me permettre de te déconseiller le stockage de fichier (images, doc, sons, ...) en base de données ?
    oui, mais developpe un peu quand même



    ps:
    ce ne sera pas image son autres, mais juste excel.

  4. #4
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par défaut
    Salut, tu peux aller voir ici : http://beaussier.developpez.com/arti...hp/mysql/blob/

    Le turorial est fait pour les images, mais je penses que le principe est le même ; regarde bien toutes les étapes du tutorial, à un moment, il y a une manip à faire sinon, l'image est illisible, ça peut peut-être résoudre ton problème

    Bon développement ;-)

  5. #5
    Membre chevronné Avatar de dj-julio
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 745
    Par défaut
    ce que je veux dire c'est que c'est beaucoup plus conseillé lorsque tu veux faire ce wue tu veux faire ^^
    de stocker tes fichiers (excel ou autres) dans un dossier
    de stocker le nom du fichier dans la base de données

    et enfin pour pouvoir accéder à ces fichier

    dans une variable tu stock le chemin d'accès au répertoire contenant les != fichiers.

    je ne sais pas si j'ai été claire

  6. #6
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Par défaut
    justement, j'ai regardé ce document,
    et je viens de le reregarder des fois que quelque chose m'aurait echapper,
    et il y a seulement de ne pas faire de stripslashes sur la sortie,
    je viens d'essayer, et toujours la même chose
    fichier afficher = du binaire mis aleatoirement dans les cellules.
    fichier stocké = des erreurs, mais un contenu "realiste".

  7. #7
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par défaut
    Et en lisant le tutorial, tu as tout bien suivi étape par étape :

    Citation Envoyé par kichemans
    fichier stocké = des erreurs, mais un contenu "realiste"
    Des erreurs : Quel genre :

  8. #8
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Par défaut
    ce que je veux dire c'est que c'est beaucoup plus conseillé lorsque tu veux faire ce wue tu veux faire ^^
    dans le même genre :
    Citation Envoyé par Mr 1 ( un infographiste )
    MAc c'est mieux pour les images...
    Citation Envoyé par Mr 2
    Pourquoi ?
    Citation Envoyé par Mr 1 ( un infographiste )
    parce-que tout les professionnels l'utilisent.

    developpe un peu quand même
    ce que je veux dire c'est que c'est beaucoup plus conseillé lorsque tu veux faire ce wue tu veux faire

    je ne sais pas si j'ai été claire
    de toute façon, je ne cherche aucune explication sur comment gerer une arborescence de fichier.
    je ne voulais pas une autre methode en te demandant de developper, mais simplement une argumentation de
    "Est ce que je peux me permettre de te déconseiller le stockage de fichier (images, doc, sons, ...) en base de données ? "

    maintenant, sans vouloir te vexer ou etre desagreable, j'aimerais eviter le HS, car j'aimerais resoudre mon probléme

  9. #9
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Par défaut
    Citation Envoyé par Nesmontou
    Et en lisant le tutorial, tu as tout bien suivi étape par étape :
    je n'ai pas lu le tutorial entre les lignes, mais je ne me suis pas amusé a refaire le code du tutorial.
    j'essaye plutot de refaire a peu pres la même chose pour ce dont j'ai besoin.
    Des erreurs Question Exclamation Quel genre

    Le document est endommagé et ne peut pas être ouvert.
    Pour essayer de le reparer, utilisez la commande ouvrir de la boite de dialogue Ouvrir ( menu fichier ).
    puis selectionner extraire les données lorsque vous y serez invité



    Message 2

    des erreurs ont étés détéctés dans fichier.xls mais
    Microsoft Office Excel a pu ouvrir le fichier en effectuant des reparations,
    etc....


    Message 3 ( sous boite de message 2 )

    Le fichier était trop endommagé pour pouvoir être réparé.
    Excel a essayé de recuperer vos formules et valeurs, mais certaines données ont peut-etre été perdues ou endommagées


    ( retapé message 1/2/3 a la main car dans une boite de dialogue et je ne peux pas copier/coller )

  10. #10
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Par défaut
    quelques news...
    maintenant, j'ai un fichier généré "nickel" (sans erreurs, bref tout va bien )
    mais celui qui est renvoyé est toujours identique,
    je pense a un probléme d'entete, sinon, le fichier sur le serveur serait lui aussi "foireux"

    mon code test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    header("Content-Type: application/vnd.ms-excel"); 
    header("Content-Transfer-Encoding: binary");
    header("Content-Disposition: attachment; filename=fichier.xls");
    $blobContent=mysql_result(mysql_query("SELECT XLS FROM `matable` WHERE id='16' LIMIT 1"),0,'XLS');// 14 ---- 16
    mk_excel($blobContent);
    echo $blobContent;
    die();
    pour ceux qui veulent voir, essayez mon IP :
    http://10.253.12.26/TEST/ ( je ne sais pas si on peut y acceder depuis l'exterieur de l'intranet, mais sans essayer .... )

  11. #11
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Par défaut
    toujours en train de chercher...

    voici :

    fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?
    error_reporting(E_ALL);
    //session_start();
    //include_once('./inc/config.inc.php');
    //include_once('./inc/fonctions.php');
    //connect_db();
     
     
    header("Content-Type: application/vnd.ms-excel"); 
    //blobContent=mysql_result(mysql_query("SELECT XLS FROM `evaluation` WHERE id='16' LIMIT 1"),0,'XLS');// 14 ---- 16
    //mk_excel($blobContent);
    $blobContent = file_get_contents('exceltestt.xls');
    echo $blobContent;
    ?>
    ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    error_reporting(E_ALL);
    session_start();
    include_once('./inc/config.inc.php');
    include_once('./inc/fonctions.php');
    connect_db();
     
     
    header("Content-Type: application/vnd.ms-excel"); 
    //blobContent=mysql_result(mysql_query("SELECT XLS FROM `evaluation` WHERE id='16' LIMIT 1"),0,'XLS');// 14 ---- 16
    //mk_excel($blobContent);
    $blobContent = file_get_contents('exceltestt.xls');
    echo $blobContent;
    EDIT:
    biensur, j'ai virer le header pour voir s'il y avais des erreurs..

  12. #12
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Par défaut
    je suis désolé de poster tout seul, mais c'est au cas ou quelqu'un auraot une idée...
    je suis désespéré la...
    surtout avec cette news ... :

    fonctionne :
    <?
    //session_start();
    //include_once('./inc/config.inc.php');
    //include_once('./inc/fonctions.php');
    //connect_db();


    header("Content-Type: application/vnd.ms-excel");
    //blobContent=mysql_result(mysql_query("SELECT XLS FROM `evaluation` WHERE id='16' LIMIT 1"),0,'XLS');// 14 ---- 16
    //mk_excel($blobContent);
    $blobContent = file_get_contents('exceltestt.xls');
    echo $blobContent;
    ?>
    ne fonctionne pas .. :
    <?
    //session_start();
    include_once('./inc/config.inc.php');
    //include_once('./inc/fonctions.php');
    //connect_db();


    header("Content-Type: application/vnd.ms-excel");
    //blobContent=mysql_result(mysql_query("SELECT XLS FROM `evaluation` WHERE id='16' LIMIT 1"),0,'XLS');// 14 ---- 16
    //mk_excel($blobContent);
    $blobContent = file_get_contents('exceltestt.xls');
    echo $blobContent;
    ?>
    voici le contenu du fichier inclus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?
    //valeur enlevé pour poster ici 
    DEFINE('_DB_NAME',"");
    DEFINE('_DB_LOGIN','');
    DEFINE('_DB_PASS','');
    DEFINE('_DB_HOST','');
    ?>

    si vous ne me croyez pas, c'est comme mes collegues avant qu'ils voient de leurs propres yeux...


    EDIT:
    je precise aussi qu'il n'y a aucun espace en debut du fichier config.inc.php ...

  13. #13
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par défaut
    Salut, que'est-ce que tu veux dire pas "ne fonctionne pas" :
    Tu as un message d'erreur :
    Si oui, lequel :
    Tu es sûr du chemin pour accéder à ton fichier :

  14. #14
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par défaut
    salut,
    as tu essayé de faire un readfile ?

  15. #15
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Par défaut
    Citation Envoyé par Nesmontou
    Salut, que'est-ce que tu veux dire pas "ne fonctionne pas" :
    ne fonctionne pas, je veux dire, exactement comme avant, du binaire avec ,'importe quoi dans les cellules...
    Tu as un message d'erreur :
    non aucun ( j'ai biensur virer les entetes http qui masquerait l'erreur et aussi mis au cas ou un error_reporting(E_ALL) en debut de script )

    Tu es sûr du chemin pour accéder à ton fichier :
    oui, il est dans le même dossier, et ça marche si je commente l'inclusion de config.inc.php
    ( si c'etais un mauvais chemin, inclusion comenté ou pas, ça ne marcherait pas )
    d'ailleur, que je prenne le fichier excel du dossier pour test, ou que je prenne l'objet BLOB, c'est la même chose....
    ( marche en commentant :
    //session_start();
    //include_once('./inc/config.inc.php');
    //include_once('./inc/fonctions.php');
    //connect_db();

    )
    ne marche pas en decommentant l'une de ces 4 lignes.
    as tu essayé de faire un readfile ?
    je pense, mais n'en suis pas sur, je reessaye ( ou essaye si je n'avais pas essayé, et reposte )
    ( tellement de test que je finit par ne plus savoir ce que j'ai ou pas testé )

    c'est a devenir dingue.. 8lignes.. 1 jour, et encore pas debuggé...

  16. #16
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Par défaut
    readfile donne le même resultat ( marche pas sans commenter l'incude )

  17. #17
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Par défaut
    je creerais bien un compte multimania en postant ici le MDP/login FTP pour que vous constatez,
    mais lycos envoie automatiquement "un surplus" html ( une frame en haut de page, et une frame en bas de page ),
    donc ça ne pourra pas marcher ( enfin je pense )

    je suis en train de penser a un probléme serveur, donc je vais installer ça sur un autre serveur a ma disposition ( linux )
    et voir ce que ça donne...
    ( mais le hic, c'est que si jamais le même script fonctionne sur l'autre serveur, ça ne resoud quand même pas mon probléme, puisque je compte utiliser COM )

  18. #18
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par défaut
    Citation Envoyé par kichemans
    je precise aussi qu'il n'y a aucun espace en debut du fichier config.inc.php ...
    et a la fin ?

  19. #19
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Par défaut
    pffF.........
    merci..
    je suis vraiment désolé
    le pire c'est que je n'y aurais jamais penser

  20. #20
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par défaut
    bha faut se faire avoir une fois et apres on y pense

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

Discussions similaires

  1. Transformer un blob mysql en image
    Par bizet dans le forum Accès aux données
    Réponses: 0
    Dernier message: 13/09/2012, 10h57
  2. [MySQL] Afficher une image blob du serveur mysql
    Par imadraf dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 01/07/2011, 11h52
  3. Réponses: 15
    Dernier message: 29/07/2009, 13h33
  4. Réponses: 1
    Dernier message: 02/03/2008, 16h16
  5. afficher une image(blob) Mysql
    Par biba158 dans le forum JDBC
    Réponses: 2
    Dernier message: 07/05/2007, 12h32

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