J'essaie de redimensionner une image qui est stockée dans une table MySQL
mais j'obtiens une erreur lorsque je passe ma variable aux fonctions
imagecreatefromjpeg(), getimagesize() et imagecopyresized() . Il faut leurs
passer un fichier et non une variable mémoire. Mais je n'ai pas envie de
creer des fichiers pour faire cela, même temporairement. Je doit travailler
en memoire. Qq a-t-il une solution ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jean-Marc Molina
Bonjour Damien,
Par expérience je te conseille d'utiliser des fichiers pour stocker tes variables. Les stocker dans ta base est inutile et inadapté. J'avais adopté cette solution en pensant que les BLOBs pouvaient répondre à tous mes problèmes, comme si MySQL était un SGBD objet... Non non. Niveau inconvénients : - Images inacessibles à partir d'un logiciel extérieur (visualisation, édition...) - Surcharge la BDD pour rien (ça prend de la place les images) - Affichage laborieux d'une simple image : extraction de la BDD, génération d'une nouvelle image à partir des données...
La solution c'est d'utiliser une table images qui s'occupe de faire le lien entre les modèles de ta BDD et les fichiers. Par exemple si tu veux gérer les photos des membres de ton site, tu as une table membres avec des champs comme id, nom, prénom... Tu peux alors te servir de l'id (PRIMARY KEY) pour nommer tes fichiers : 1.jpg, 2.jpg, etc... Et je ne te parle même pas du bénéf quand il s'agit de générer des miniatures !
Alors toujours pas convaincu ? ^^.
Désolé mais j'ai préféré te proposer une meilleure solution plutôt que de trouver l'erreur dans ton script, ça doit venir d'un stripslashes manquant. On en a beaucoup parlé sur PHPBuilder suite à un article publié voilà quelques mois, si le coeur et ton anglais t'en disent, vas faire un tour là-bas :).
JM
-- Europe > France > Lyon Clé AntiPourriel : PASUNPOURRIEL (ne pas retirer)
Bonjour Damien,
Par expérience je te conseille d'utiliser des fichiers pour stocker tes
variables.
Les stocker dans ta base est inutile et inadapté.
J'avais adopté cette solution en pensant que les BLOBs pouvaient répondre à
tous mes problèmes, comme si MySQL était un SGBD objet... Non non.
Niveau inconvénients :
- Images inacessibles à partir d'un logiciel extérieur (visualisation,
édition...)
- Surcharge la BDD pour rien (ça prend de la place les images)
- Affichage laborieux d'une simple image : extraction de la BDD, génération
d'une nouvelle image à partir des données...
La solution c'est d'utiliser une table images qui s'occupe de faire le lien
entre les modèles de ta BDD et les fichiers. Par exemple si tu veux gérer
les photos des membres de ton site, tu as une table membres avec des champs
comme id, nom, prénom... Tu peux alors te servir de l'id (PRIMARY KEY) pour
nommer tes fichiers : 1.jpg, 2.jpg, etc... Et je ne te parle même pas du
bénéf quand il s'agit de générer des miniatures !
Alors toujours pas convaincu ? ^^.
Désolé mais j'ai préféré te proposer une meilleure solution plutôt que de
trouver l'erreur dans ton script, ça doit venir d'un stripslashes manquant.
On en a beaucoup parlé sur PHPBuilder suite à un article publié voilà
quelques mois, si le coeur et ton anglais t'en disent, vas faire un tour
là-bas :).
JM
--
Europe > France > Lyon
Clé AntiPourriel : PASUNPOURRIEL (ne pas retirer)
Par expérience je te conseille d'utiliser des fichiers pour stocker tes variables. Les stocker dans ta base est inutile et inadapté. J'avais adopté cette solution en pensant que les BLOBs pouvaient répondre à tous mes problèmes, comme si MySQL était un SGBD objet... Non non. Niveau inconvénients : - Images inacessibles à partir d'un logiciel extérieur (visualisation, édition...) - Surcharge la BDD pour rien (ça prend de la place les images) - Affichage laborieux d'une simple image : extraction de la BDD, génération d'une nouvelle image à partir des données...
La solution c'est d'utiliser une table images qui s'occupe de faire le lien entre les modèles de ta BDD et les fichiers. Par exemple si tu veux gérer les photos des membres de ton site, tu as une table membres avec des champs comme id, nom, prénom... Tu peux alors te servir de l'id (PRIMARY KEY) pour nommer tes fichiers : 1.jpg, 2.jpg, etc... Et je ne te parle même pas du bénéf quand il s'agit de générer des miniatures !
Alors toujours pas convaincu ? ^^.
Désolé mais j'ai préféré te proposer une meilleure solution plutôt que de trouver l'erreur dans ton script, ça doit venir d'un stripslashes manquant. On en a beaucoup parlé sur PHPBuilder suite à un article publié voilà quelques mois, si le coeur et ton anglais t'en disent, vas faire un tour là-bas :).
JM
-- Europe > France > Lyon Clé AntiPourriel : PASUNPOURRIEL (ne pas retirer)
Jedi121
Et une sixième copie en multipost du message! Réponse sur alt.comp.lang.php
En gros c'est imagecreatefromstring() la fonction qu'il te faut.
Et une sixième copie en multipost du message!
Réponse sur alt.comp.lang.php
En gros c'est imagecreatefromstring() la fonction qu'il te faut.
Et une sixième copie en multipost du message! Réponse sur alt.comp.lang.php
En gros c'est imagecreatefromstring() la fonction qu'il te faut.
Jedi121
"Damien Viel" a écrit le 26/11/2003 :
J'essaie de redimensionner une image qui est stockée dans une table MySQL mais j'obtiens une erreur lorsque je passe ma variable aux fonctions imagecreatefromjpeg(), getimagesize() et imagecopyresized() . Il faut leurs passer un fichier et non une variable mémoire. Mais je n'ai pas envie de creer des fichiers pour faire cela, même temporairement. Je doit travailler en memoire. Qq a-t-il une solution ?
Utiliser la fonction imagecreatefromstring()
<?php if (isset($id)) { require ("./conf/config.inc.php"); $res = mysql_query ("SELECT * FROM images WHERE id=$id"); if (mysql_num_rows($res)>0) { header( "Content-Type: image/jpg"); $temp = mysql_result($res,0,pics);
$srcImg = imagecreatefromjpeg($temp); Remplacer par :
J'essaie de redimensionner une image qui est stockée dans une table MySQL
mais j'obtiens une erreur lorsque je passe ma variable aux fonctions
imagecreatefromjpeg(), getimagesize() et imagecopyresized() . Il faut leurs
passer un fichier et non une variable mémoire. Mais je n'ai pas envie de
creer des fichiers pour faire cela, même temporairement. Je doit travailler
en memoire. Qq a-t-il une solution ?
Utiliser la fonction imagecreatefromstring()
<?php
if (isset($id)) {
require ("./conf/config.inc.php");
$res = mysql_query ("SELECT * FROM images WHERE id=$id");
if (mysql_num_rows($res)>0) {
header( "Content-Type: image/jpg");
$temp = mysql_result($res,0,pics);
$srcImg = imagecreatefromjpeg($temp);
Remplacer par :
J'essaie de redimensionner une image qui est stockée dans une table MySQL mais j'obtiens une erreur lorsque je passe ma variable aux fonctions imagecreatefromjpeg(), getimagesize() et imagecopyresized() . Il faut leurs passer un fichier et non une variable mémoire. Mais je n'ai pas envie de creer des fichiers pour faire cela, même temporairement. Je doit travailler en memoire. Qq a-t-il une solution ?
Utiliser la fonction imagecreatefromstring()
<?php if (isset($id)) { require ("./conf/config.inc.php"); $res = mysql_query ("SELECT * FROM images WHERE id=$id"); if (mysql_num_rows($res)>0) { header( "Content-Type: image/jpg"); $temp = mysql_result($res,0,pics);
$srcImg = imagecreatefromjpeg($temp); Remplacer par :