LONGBLOB et conversion en jpeg pour stockage en fichier
Bonjour,
j'ai fait développer mon site en Inde, et je constate aujourd'hui un gros problème dans ma taille de base de données. Mes ingénieurs ont à l'époque stockée une image publicitaire au format Longblob au lieu d'utiliser jpeg. La taille de la base de données explose et je dois payer des augmentations de la taille de ma base de données.. Je voudrais récupérer mes images au format longblob, les convertir en jpeg et les stocker dans un répertoire. En cas d'appel, j'irai lire le jpeg et l'afficher. Voilà mon code actuel qui ne fonctionne pas. Ou est l'erreur ???:calim2: Éventuellement ne pas en tenir compte et me proposer différent..
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
<?php
//Répertoire de sauvegarde des images
$sav_image='http://www.speedclic.net/clients/images/';
// Récupération des images Format LongBlob et conversion en Jpeg !!!
$reponse = $bdd->query('SELECT * FROM pub_detail ') or die(print_r($bdd->errorinfo()));
while ($rowname=$reponse->fetch())
{
$pub1=NULL; $client=NULL;
$pub1=$rowname['image1'];
$client=$rowname['gid'];
if ($pub1<>NULL)
{
header("Content-type: image/jpeg");
$image= $sav_image. $gid . '_image.jpg';
imagejpeg($pub1,$image);
}
else
{echo ''.$gid.' Pas de pub';}
}
$reponse->closeCursor();
?> |
Pas de jpeg au final - fichier vide
Bonjour,
après modification, voilà le nouveau code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
<?php
include "connectdb.php";
$gid = $_GET['gid'];
$img = $_GET['img'];
$sav_image='http://www.speedclic.net/clients/images/';
$gotten = @mysql_query("select * from pub_detail where gid=$gid");
while ($row = @mysql_fetch_array($gotten))
if($img == 1)
{
$bytes = $row[image1];
print $bytes;
$im = imagecreatefromstring($bytes);
if ($im != false)
{
header("Content-type: image/jpeg");
$image= $sav_image. $gid . '_image.jpg';
imagejpeg($im,$image);
}
}
?> |
Problèmes:
Aucun message d'erreur, mais lorsque je consulte le répertoire où je désire stocker les jepgs.. Rien..:cry: aucun fichier sauvegardé.. Une idée ???8O
Il est possible de voir le résultat de print $bytes sur mon site http://www.speedclic.pf en cliquant sur une des 4 miniatures.
Il me reste 24/48 heures pour faire la modif...
Decodage LongBlob aux formats Jpeg/Gif/Png
Bonjour,
désolé de ne pas voir apporter une réponse rapide à vos aides..
Et d'indiquer qu'aucune solution ne marche !!!
Voici le code modifié, (j'utilise un client code 5580 pour test) et le début du fichier LONGBLOB tel qu'il s'affiche.
J'ai dans ma base des fichiers JPEG / GIF (possible PNG)
J'ai commencé à coder pour lancer une boucle et récupérer tous les fichiers dans un répertoire.
J'ai activé CHMOD 777 pour le répertoire images (réponse à Célira).
J'ai un souci avec header("Content-type: image/jpeg"); qui me déclenche une erreur indiquant qu'il est trop tard pour toucher à header.J'ai un site pour charger mes programmes http://speedclic.net/telechargement, protégé par mot de passe, j'ai ajouté un bouton pour déclencher le test, fonction LongBlob.
Je dispose de speedclic.fr .in .pf et .nc et + (.pf est le plus optimisé)
Je désire utiliser .net pour stocker tous mes contenus (réponse à jreaux62)
RunCodePhp, j'utilise le mode PDO, j'ai testé un transfert de ton code, pourrais tu utiliser ma version et modifier ???
Merci à tous pour vos aides.
Code actuel :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| <?php
include "connectdb.php";
$clt=5580;
$sav_image='http://www.speedclic.net/clients/images/5580_image.jpeg';
$reponse = $bdd->prepare('SELECT * FROM pub_detail WHERE gid=:test') or die(print_r($bdd->errorinfo()));
$reponse->execute(array('test' =>$clt ));
if(!is_object($reponse)){echo"<font color='red' size='5'>Reponse N EST PAS UN OBJET</font>";}
$client = 0;
while ($rowname=$reponse->fetch())
{
$NumC=$rowname['gid'];
$PaysC=$rowname['pays'];
$image_name=$rowname['image1_name'];
$image=$rowname['image1'];
$client++;
include "affiche_byte_image.php";
}
$reponse->closeCursor(); |
jutilise le code suivant pour tester l'affichage de test de mon contenu
Code:
1 2 3 4 5 6 7
| <div id="centre">
<?php
echo 'Client N°'. $client .' - Code client ' . $NumC .' </br>';
echo 'Nom du fichier image'. $image_name .' </br>';
echo ''. $image .'';
echo ''. $im .'';?>
</div> |
Voici ce que cela affiche:
Client N°1 - Code client 5580
Nom du fichier imageview_mini.jpg
ÿØÿàJFIFÿþ>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality ÿÛC $.' ",#(7),01444'9=82<.342ÿÛC 2!!22222222222222222222222222222222222222222222222222ÿÀrk"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤
le fichier fait 40Ko, je coupe aussi le reste est une suite binaire.