flo850 a écrit :
ce n'est vraiment aps une bonne idée dans le cas général( la base de données grossis très vite et perds en performance) En général on stocke le chemin en bdd et le reste dans un répertoire à côté. Toutefois, si tu y tiens vraiment, il faut nous montrer ton script qui est chargé de la lecture
|
vous avez raison. mais le laboratoire où j'effectue mon stage me demande d'insérer dans une base de données avec le champ BLOB
Voici mon code : ce code il me permet d'ajouter ke le chemin des fichiers dans la base de données
$identifiant = 124193;
//création des deux tableaux. un qui contient les .png et l'autre qui contient les fichiers des configurations (.dat, .text, ...)
$rep = "./simulation/simulation_morphologique/"; // répertoire qui contient tous les fichiers
$fichiers = array(); // un table qui contient tout les fichiers
$resultats = array(); // un table qui contient que les images .png
$configuration = array(); // un table qui contient les autres extensions (.text, .dat, ..)
$dir = opendir($rep); // ouvre le répertoire
// lire le répertoire qui contient les fichiers
while($f = readdir($dir))
{
if(is_file($rep.$f))
{
array_push($fichiers, "$f" ); // insérer le fichier dans $fichiers
}
}
closedir($dir);
//tester l'extension des fichiers dans la table fichiers
foreach($fichiers as $keyFichier)
{
$extension = substr("$keyFichier", -3, 3);
$file = "$rep$keyFichier";
if($extension == "png" )
{
array_push($resultats, "$file" );
}
else
{
array_push($configuration, "$file" );
}
}
$sizeRes = sizeof($resultats);
$sizeConf = sizeof($configuration);
//création du fichier .zip pour les fichiers de configurations (.text, .dat, ...) avant de l'inserer dans la base de données.
$zip = new zipfile () ; //on crée une instance zip
// liste des fichiers à compresser
$i = 0 ;
while ( count($configuration) > $i )
{
$fo = fopen($configuration[$i],'r') ; //on ouvre le fichier
$contenu = fread($fo, filesize($configuration[$i])) ; //on enregistre le contenu
fclose($fo) ; //on ferme fichier
$zip->addfile($contenu, $configuration[$i]) ; //on ajoute le fichier
$i++; //on incrémente i
}
$archive = $zip->file() ; // on associe l'archives
// on enregistre l'archive dans un fichier
$open = fopen( "./simulation/simulation_morphologique/config$identifiant.zip" , "wb" );
fwrite($open, $archive);
fclose($open); //fin zip
$commande = "./simulation/simulation_morphologique/config$identifiant.zip";
// insertion les fichiers de la configuration dans la base de données (fichier .zip)
$insertion = mysql_query("INSERT INTO commande VALUES ('$identifiant', '$date_creation', '$utilisateur', 'morpho', '$commande')" ) or die(mysql_error());
// insertion les résultats associé à la commande dans la base de données
foreach($resultats as $keyResultats) // les images
{
$insertion = mysql_query("INSERT INTO data VALUES ('', '$identifiant', '$keyResultats')" ) or die(mysql_error());
}
// supprimer les fichiers (commande + résultats) de la répértoire
foreach($fichiers as $keyfichiers)
{
$file = "./simulation/simulation_morphologique/$keyfichiers";
unlink("$file" );
}
// chercher les images dans la base de données
$reponseVisu = mysql_query("SELECT * FROM data WHERE id_commande = $identifiant" ) or die (mysql_error());
while($donneesVisu = mysql_fetch_array($reponseVisu))
{
echo "<a href='$donneesVisu[data]'><img class='' src='$donneesVisu[data]'/></a>";
}
Message édité par atout1 le 31-05-2010 à 15:44:08