ro2kpdp
Messages postés2Date d'inscriptionmercredi 1 juillet 2009StatutMembreDernière intervention19 mai 2010
-
19 mai 2010 à 09:20
kharmouza
Messages postés5Date d'inscriptionjeudi 19 juin 2008StatutMembreDernière intervention13 octobre 2010
-
13 oct. 2010 à 21:47
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
kharmouza
Messages postés5Date d'inscriptionjeudi 19 juin 2008StatutMembreDernière intervention13 octobre 2010 13 oct. 2010 à 21:47
hhhhhh ok men :)
beejeridou
Messages postés35Date d'inscriptionlundi 10 avril 2006StatutMembreDernière intervention21 mai 2010 11 oct. 2010 à 11:22
La source est sur cette page. A vous d'adapter l'exemple selon vos besoins.
Cordeialement,
//Beejeridou */
kharmouza
Messages postés5Date d'inscriptionjeudi 19 juin 2008StatutMembreDernière intervention13 octobre 2010 7 oct. 2010 à 15:51
j'ai besoin d'une classe qui fait L'upload multiple plus le redimensionnement des images en 3 types l'homothétie, le crop et le wallpaper. si vous vous avez une source aider moi SVP
kharmouza
Messages postés5Date d'inscriptionjeudi 19 juin 2008StatutMembreDernière intervention13 octobre 2010 7 oct. 2010 à 15:12
si j'ai trouver sur d'autre source d'upload crée en POO l'upload multiple sans passé par le flash
beejeridou
Messages postés35Date d'inscriptionlundi 10 avril 2006StatutMembreDernière intervention21 mai 2010 7 oct. 2010 à 12:45
Salut,
Il te suffit de déclarer plusieurs objets. Après, j'imagine que tu gères l'upload multiple en Flash? php/HTML ne le gère pas à lui tout seul.
kharmouza
Messages postés5Date d'inscriptionjeudi 19 juin 2008StatutMembreDernière intervention13 octobre 2010 7 oct. 2010 à 06:08
salut est ce qu'il y a une possibilité d'avoir envoyer plusieurs fichier a la foi le cas de l'upload multiple tu peut ajouter une classe pour l'upload multiple SVP
nobitos
Messages postés7Date d'inscriptionvendredi 13 octobre 2006StatutMembreDernière intervention24 septembre 2010 24 sept. 2010 à 11:35
Oui, l'image est parfaitement bien redimensionnée, et surtout, (c'est ça qui m'intéresse) elle ne pèse plus que...350KO environ au lieu de 2,5MB ! ça, c'est super.
Je ne fais qu'un seul redimensionnement : Homothéty.
Les autres type de redim. sont mis en commentaires.
J'avais fais le test de n'appeler que la classe UPLOAD, mais je ne me souviens plus du résultat en termes de délais d'éxécution (à ce moment, ce n'est pas ce qui m'intéressait).
J'aurai plus d'information ce soir quand je serai chez moi.
A+ et bonne journée,
cordialement,
Nobitos.
beejeridou
Messages postés35Date d'inscriptionlundi 10 avril 2006StatutMembreDernière intervention21 mai 2010 24 sept. 2010 à 11:06
Ah oué... 20 secondes en local (même en ligne) n'est pas normal!
Ton image est bien redimensionnée à la fin comme tu le voulais? combien fais tu de redimensionnements? as tu essayé d'uploader juste le fichier (juste utiliser la classe upload, sans la classe resize)? as tu essayé d'uploader une image un peu moins lourde (<2mo)?
Cordialement,
//Beejeridou */
nobitos
Messages postés7Date d'inscriptionvendredi 13 octobre 2006StatutMembreDernière intervention24 septembre 2010 24 sept. 2010 à 10:37
Bonjour,
merci pour ta réponse rapide.
En effet, tu m'aides, et plus qu'un brin !
J'ai un peu farfouillé dans les différents tuto sur la POO que l'on peut trouver sur le Net, et j'avais fini par comprendre qu'il fallait appeler les méthodes dont j'avais besoin afin de donner le nom que je voulais pour mon fichier (méthodes 'magiques' _SET et _GET).
Donc, PREFIXENAME était vide...parce que je n'appelais pas la méthode !
Le nom lui-meme était finalement constitué uniquement du UNIQNAME.
Pour la DIRECTORY, je réessaierai ce soir (je suis à mon boulot) : je pense que ça plantait parce que je ne devait pas indiquer le bon chemin...
Quoi qu'il en soit, je suis très content de ce code qui me fait beaucoup mieux comprendre la POO (30 ans de COBOL, ça n'aide pas !) et je vais tenter de développer mon site de cette façon.
Une dernière chose : le temps d'éxécution est terriblement long pour une seule image (dans les 20 secondes environ).
La photo pèse environ 2,5MB et je teste en local (WAMP): est-ce déjà beaucoup trop gros pour un UPLOAD ?
Encore merci,
cordialement,
Nobitos.
beejeridou
Messages postés35Date d'inscriptionlundi 10 avril 2006StatutMembreDernière intervention21 mai 2010 24 sept. 2010 à 10:06
Hello,
Il faut d'abord savoir qu'une classe fonctionne comme un ensemble. Je dis ça car je te conseille de laisser la methode createDir(), car elle fonctionne de manière native si l'endroit de destination n'existe pas.
Ensuite, tu as des "SETTERS" et des "GETTERS": ce sont des methodes pour alimenter la classe, àprès son implémentation. C'est d'ailleurs pour ça qu'elles sont de type "public" alors que les autres sont de type "private". Ces valeurs ont pour le plus souvent un comportement "par défaut", comme $this->name ou $this->prefixeName. En clair, si tu n'appelles pas $upload->setName, ton fichier prendra un nom unique. Idem pour $upload->setPrefixeName.
Si tu veut donner ton nom du fichier d'origine: par exemple:
$upload = new UploadFile('nom_du_input_file');
$upload->setType("jpg/jpeg/gif/png"); // pas de slash a la fin
$upload->setPath("images/encore/un/repertoire/etc"); // pas de slash a la fin
En plus, le nom sera automatiquement mis sans les accents et caractères spéciaux, ce qui peut poser beaucoup de problèmes sur des serveurs linux par exemple.
Il est vrai que dans mon exemple, je n'ai pas changé le nom du fichier source car il est changé dans la classe imgResize par la suite. Mais ce n'est que dans le cas d'un upload d'images.
En espérant avoir pu t'aider un brin.
Cordialement
//Beejeridou */
nobitos
Messages postés7Date d'inscriptionvendredi 13 octobre 2006StatutMembreDernière intervention24 septembre 2010 23 sept. 2010 à 18:10
Bonjour à tous,
bravo à Beejeridou pour ce code, que je trouve vraiment bien conçu.
Cela me permet surtout d'approcher la POO.
Je débute en PHP, (POO ou pas !) et j'essaie de comprendre...
Par exemple, je ne comprends pas du tout comment est alimentée la variable "name", qui sert à UPLOADER le fichier ???
D'autre part, la variable "prefixeName" est toujours vide ??
Merci donc de m'aider à comprendre comment sont alimentées ces deux variables.
(Je précise que je n'appelle plus la fonction qui créé la Directory, car celle-ci existe déjà et je veux la conserver. D'ailleurs, si je laisse le code tel que avec l'appel à la fonction...ça plante !).
En fait, je veux donner au fichier le nom d'origine, qui se trouve donc dans :
$_FILES['nom_du_input_file']['name']
Si tu pouvais éclairer ma lanterne, cela m'aiderait considérablement !!
En espérant avoir été suffisamment clair,
cordialement,
nobitos.
beejeridou
Messages postés35Date d'inscriptionlundi 10 avril 2006StatutMembreDernière intervention21 mai 2010 31 août 2010 à 14:32
Je ne sais pas comment mais on m'informe que l'exemple d'instanciation de la classe a disparu du code source... je le met ci-dessous (basique):
$img->setDeleteSource(); //ne fonctionne pas tres bien, je ne comprend pas trop pourquoi...
$message = $img->getErrorResize();
}
$message = $upload->getErrorUpload();
echo $message;
}
?>
Plus plus!
//Beejeridou
beejeridou
Messages postés35Date d'inscriptionlundi 10 avril 2006StatutMembreDernière intervention21 mai 2010 10 juin 2010 à 14:41
perso je me serais servi du parametre $imgName pour renommer l'image. Dans la classe UploadFile, tu peux retourner juste le nom du fichier, puis le passer dans ImageResize.
Ta manière de procéder peux fonctionner si tu passes par la classe UploadFile avant, car elle enlève les caractères spéciaux qui peuvent générer des bugs.
Cordialement!
elran
Messages postés22Date d'inscriptionvendredi 16 janvier 2004StatutMembreDernière intervention 5 juin 2010 10 juin 2010 à 12:59
ok, je vais vérifier ça dès demain, en attendant je poste ici une petite astuce:
pour faire en sorte que les vignettes aient le même nom que l'image source:
dans le fichier class.imageResize.php, fonction resize:
j'ai juste commenté la ligne:
//$this->uniqName($imgName);
l'auteur de cette class pourra me dire si c'est pas un peu barbare ce que j'ai fait... ;)
beejeridou
Messages postés35Date d'inscriptionlundi 10 avril 2006StatutMembreDernière intervention21 mai 2010 10 juin 2010 à 10:53
J'ai ajouté la méthode getPathImg().
Je ne l'ai pas testée^^ désolé. Dis moi si ca marche. Tu dois normalement l'appeler après chaque méthodes resize();
L'idéal serait de retourner un tableau contenant toutes les images redimentionnées... c la prochaine modif.
elran
Messages postés22Date d'inscriptionvendredi 16 janvier 2004StatutMembreDernière intervention 5 juin 2010 9 juin 2010 à 20:06
en fait j'ai réussi à faire un echo sur le chemin d'un des fichiers, celui qui est uploadé sans resize:
$chemin_photo = $upload->getPath()."/".$upload->getName().$upload->getExtension();
echo $chemin_photo;
que j'ai mis tout à la fin du fichier class.imageResize.php quand le fichier uploadfile est appelé.
par contre pour celui qui est redimensionné... j'y arrive pas.
beejeridou
Messages postés35Date d'inscriptionlundi 10 avril 2006StatutMembreDernière intervention21 mai 2010 9 juin 2010 à 17:45
Bien vu, je te fais ça dès que j'ai un brin de temps (surement demain).
elran
Messages postés22Date d'inscriptionvendredi 16 janvier 2004StatutMembreDernière intervention 5 juin 2010 9 juin 2010 à 16:36
bonjour,
je souhaiterais, après l'upload, pouvoir récupérer les chemin d'accès(avec les noms des fichiers) vers les images uploadées, où faut il aller regarder et que faut il récupérer svp?
j'en aurais besoin pour les affectés à 2 champs d'un formulaire d'une page que j'appellerais à la fin de l'upload...
elran
Messages postés22Date d'inscriptionvendredi 16 janvier 2004StatutMembreDernière intervention 5 juin 2010 7 juin 2010 à 12:26
les noms des variables étaient suffisamment explicite... ;)
beejeridou
Messages postés35Date d'inscriptionlundi 10 avril 2006StatutMembreDernière intervention21 mai 2010 7 juin 2010 à 10:23
J'ai oublié de le préciser^^ désolé!
elran
Messages postés22Date d'inscriptionvendredi 16 janvier 2004StatutMembreDernière intervention 5 juin 2010 7 juin 2010 à 02:03
oups, autant pour moi, il suffisait de virer le nom dans l'appel de la fonction...
elran
Messages postés22Date d'inscriptionvendredi 16 janvier 2004StatutMembreDernière intervention 5 juin 2010 7 juin 2010 à 01:45
super cette class!
par contre, le nom du fichier redimensionné étant le même pour chaque type de redimensionnement, si l'on upload/resize plusieurs fichiers l'un après l'autre ils s'écrasent...
nom_du_dichier_d_origine + type_de_resize aurait était nickel comme nom de fichier... ;)
marsbidon
Messages postés14Date d'inscriptionjeudi 16 juin 2005StatutMembreDernière intervention16 septembre 2008 27 mai 2010 à 14:39
Là c'est Tout bon pour moi, je n'ai pas remarqué de nouvelle amélioration possible ... pour l'instant.
J'hésiterai pas à revenir poster s'il y a besoin.
Merci pour ces MAJ rapides et efficaces
@plus
beejeridou
Messages postés35Date d'inscriptionlundi 10 avril 2006StatutMembreDernière intervention21 mai 2010 27 mai 2010 à 00:58
Yesss! ben au final tu auras plus testé ma classe que moi! ET C'EST GENIAL!!
J'ai trouvé la solution:
Il suffit maintenant de déclarer la methode setAlphaMode() et.... BINGO!!!
(je met la modif dans les 5 prochaines minutes...)
marsbidon
Messages postés14Date d'inscriptionjeudi 16 juin 2005StatutMembreDernière intervention16 septembre 2008 26 mai 2010 à 23:38
Re ...
Tout compte fait, après diverses images uploadées et redimensionnées, je me suis trouvé confronté à un nouveau problème : la transparence des PNG.
Après redimensionnement, tout ce qui est transparent devient noir ... réglage à faire ?
marsbidon
Messages postés14Date d'inscriptionjeudi 16 juin 2005StatutMembreDernière intervention16 septembre 2008 26 mai 2010 à 20:22
Bravo!
Tout fonctionne nikel : PNG et homothétie sur la hauteur ...
Content d'avoir fait avancer cette classe d'un petit pas!
Belle classe
beejeridou
Messages postés35Date d'inscriptionlundi 10 avril 2006StatutMembreDernière intervention21 mai 2010 26 mai 2010 à 18:45
Hello, et merci à toi Marsbidon!
Voilà, j'ai donc rajouté le nouveau paramètre "homothetyHeight", pour fabriquer une image homothetique contrainte sur la hauteur.
Pour le png, j'ai également fait une pt'te modif qui fonctionne chez moi, dis moi si c'est pareil pour toi
marsbidon
Messages postés14Date d'inscriptionjeudi 16 juin 2005StatutMembreDernière intervention16 septembre 2008 26 mai 2010 à 17:19
petite question subsidiaire en plus de mon problème de PNG :
comment ne redimensionner que la hauteur ?
Je voudrai que mes images soient redimensionnées avec une hauteur de 100px mais en conservant le ratio largeur/hauteur...
marsbidon
Messages postés14Date d'inscriptionjeudi 16 juin 2005StatutMembreDernière intervention16 septembre 2008 26 mai 2010 à 15:53
pietje24
Messages postés2Date d'inscriptionmardi 16 juin 2009StatutMembreDernière intervention24 mai 2010 24 mai 2010 à 16:27
J'avais bien vu, mais comment donner les dimensions voulues ?
beejeridou
Messages postés35Date d'inscriptionlundi 10 avril 2006StatutMembreDernière intervention21 mai 2010 24 mai 2010 à 15:20
Bonjour,
Il te suffit d'initialiser la methode setForceDimensions().
C'est la ligne que j'ai commenté dans l'exemple que j'ai fourni. Petit rappel, si l'image est plus petite que le redimensionnement demandé, la qualité sera moins bonne vu que les pixels seront agrandis.
pietje24
Messages postés2Date d'inscriptionmardi 16 juin 2009StatutMembreDernière intervention24 mai 2010 24 mai 2010 à 15:09
Bonjour,
ces classes sont super.
Avant de bricoler, peux-tu me donner la marche à suivre pour forçer les dimensions ?
Je te remercie
beejeridou
Messages postés35Date d'inscriptionlundi 10 avril 2006StatutMembreDernière intervention21 mai 2010 24 mai 2010 à 14:32
Je suppose que tu as rajouté case "JPG": case "JPEG" à la ligne 165?
KasPe
Messages postés9Date d'inscriptionsamedi 19 avril 2008StatutMembreDernière intervention 8 décembre 2010 24 mai 2010 à 11:38
J'ai pas tout regardé, juste testé vite fait et je dis déjà merci.
Un petit apport sur ta classe upLoad, j'ai rajouté les extensions en majuscule pour le typeMime. Mon appareil photo génère des fichiers blabla.JPG qui étaient considérés comme corrompus.
beejeridou
Messages postés35Date d'inscriptionlundi 10 avril 2006StatutMembreDernière intervention21 mai 2010 23 mai 2010 à 17:26
Oh! je dois dire que je ne m'attendais pas à autant^^ en tous cas, ravi que ca te plaises!
Bonne continuation!
kharmouza
Messages postés5Date d'inscriptionjeudi 19 juin 2008StatutMembreDernière intervention13 octobre 2010 23 mai 2010 à 15:54
Félicitation tu est un génie ;)
beejeridou
Messages postés35Date d'inscriptionlundi 10 avril 2006StatutMembreDernière intervention21 mai 2010 19 mai 2010 à 10:30
Alors, ui, je n'ai pas précisé, mais l'écriture sur l'image ne se fait que sur un redimensionnement de type "wallpaper".
J'ai fais comme ca car je n'ai pas fait de méthode pour calculer la taille de la police dynamiquement en fonction de la taille de la nouvelle image... Certainement une modification à apporter dès que j'ai un brin de temps.
ro2kpdp
Messages postés2Date d'inscriptionmercredi 1 juillet 2009StatutMembreDernière intervention19 mai 2010 19 mai 2010 à 09:20
Bonjour,
Felicitation puissante fonction mais je n'arrive pas a ecrire sur l'image.
13 oct. 2010 à 21:47
11 oct. 2010 à 11:22
Cordeialement,
//Beejeridou */
7 oct. 2010 à 15:51
7 oct. 2010 à 15:12
7 oct. 2010 à 12:45
Il te suffit de déclarer plusieurs objets. Après, j'imagine que tu gères l'upload multiple en Flash? php/HTML ne le gère pas à lui tout seul.
7 oct. 2010 à 06:08
24 sept. 2010 à 11:35
Je ne fais qu'un seul redimensionnement : Homothéty.
Les autres type de redim. sont mis en commentaires.
J'avais fais le test de n'appeler que la classe UPLOAD, mais je ne me souviens plus du résultat en termes de délais d'éxécution (à ce moment, ce n'est pas ce qui m'intéressait).
J'aurai plus d'information ce soir quand je serai chez moi.
A+ et bonne journée,
cordialement,
Nobitos.
24 sept. 2010 à 11:06
Ton image est bien redimensionnée à la fin comme tu le voulais? combien fais tu de redimensionnements? as tu essayé d'uploader juste le fichier (juste utiliser la classe upload, sans la classe resize)? as tu essayé d'uploader une image un peu moins lourde (<2mo)?
Cordialement,
//Beejeridou */
24 sept. 2010 à 10:37
merci pour ta réponse rapide.
En effet, tu m'aides, et plus qu'un brin !
J'ai un peu farfouillé dans les différents tuto sur la POO que l'on peut trouver sur le Net, et j'avais fini par comprendre qu'il fallait appeler les méthodes dont j'avais besoin afin de donner le nom que je voulais pour mon fichier (méthodes 'magiques' _SET et _GET).
Donc, PREFIXENAME était vide...parce que je n'appelais pas la méthode !
Le nom lui-meme était finalement constitué uniquement du UNIQNAME.
Pour la DIRECTORY, je réessaierai ce soir (je suis à mon boulot) : je pense que ça plantait parce que je ne devait pas indiquer le bon chemin...
Quoi qu'il en soit, je suis très content de ce code qui me fait beaucoup mieux comprendre la POO (30 ans de COBOL, ça n'aide pas !) et je vais tenter de développer mon site de cette façon.
Une dernière chose : le temps d'éxécution est terriblement long pour une seule image (dans les 20 secondes environ).
La photo pèse environ 2,5MB et je teste en local (WAMP): est-ce déjà beaucoup trop gros pour un UPLOAD ?
Encore merci,
cordialement,
Nobitos.
24 sept. 2010 à 10:06
Il faut d'abord savoir qu'une classe fonctionne comme un ensemble. Je dis ça car je te conseille de laisser la methode createDir(), car elle fonctionne de manière native si l'endroit de destination n'existe pas.
Ensuite, tu as des "SETTERS" et des "GETTERS": ce sont des methodes pour alimenter la classe, àprès son implémentation. C'est d'ailleurs pour ça qu'elles sont de type "public" alors que les autres sont de type "private". Ces valeurs ont pour le plus souvent un comportement "par défaut", comme $this->name ou $this->prefixeName. En clair, si tu n'appelles pas $upload->setName, ton fichier prendra un nom unique. Idem pour $upload->setPrefixeName.
Si tu veut donner ton nom du fichier d'origine: par exemple:
$upload = new UploadFile('nom_du_input_file');
$upload->setType("jpg/jpeg/gif/png"); // pas de slash a la fin
$upload->setPath("images/encore/un/repertoire/etc"); // pas de slash a la fin
$upload->setPrefixeName("prefixe-");
$upload->setName($_FILES['nom_du_input_file']['name']);
$up = $upload->upload();
En plus, le nom sera automatiquement mis sans les accents et caractères spéciaux, ce qui peut poser beaucoup de problèmes sur des serveurs linux par exemple.
Il est vrai que dans mon exemple, je n'ai pas changé le nom du fichier source car il est changé dans la classe imgResize par la suite. Mais ce n'est que dans le cas d'un upload d'images.
En espérant avoir pu t'aider un brin.
Cordialement
//Beejeridou */
23 sept. 2010 à 18:10
bravo à Beejeridou pour ce code, que je trouve vraiment bien conçu.
Cela me permet surtout d'approcher la POO.
Je débute en PHP, (POO ou pas !) et j'essaie de comprendre...
Par exemple, je ne comprends pas du tout comment est alimentée la variable "name", qui sert à UPLOADER le fichier ???
D'autre part, la variable "prefixeName" est toujours vide ??
Merci donc de m'aider à comprendre comment sont alimentées ces deux variables.
(Je précise que je n'appelle plus la fonction qui créé la Directory, car celle-ci existe déjà et je veux la conserver. D'ailleurs, si je laisse le code tel que avec l'appel à la fonction...ça plante !).
En fait, je veux donner au fichier le nom d'origine, qui se trouve donc dans :
$_FILES['nom_du_input_file']['name']
Si tu pouvais éclairer ma lanterne, cela m'aiderait considérablement !!
En espérant avoir été suffisamment clair,
cordialement,
nobitos.
31 août 2010 à 14:32
<?php
require_once("class.UploadFile.php");
require_once("class.ImageResize.php");
//FORMULAIRE UPLOAD IMAGE
$formImg = '
<form method="post" enctype="multipart/form-data">
</form>
';
echo $formImg;
if(isset($_FILES['nom_du_input_file'])) {
$upload = new UploadFile('nom_du_input_file');
$upload->setType("jpg/jpeg/gif/png"); // pas de slash a la fin
$upload->setPath("images/encore/un/repertoire/etc"); // pas de slash a la fin
$up = $upload->upload();
$message = "";
if($up) {
$img = new ImageResize($upload->getPath(), $upload->getName(), $upload->getExtension(), 6);
$img->setAlphaMode();
//$img->setForceDimensions();
$img->resize("homothety", $upload->getPath(), "100");
$img->resize("homothetyHeight", $upload->getPath(), "100");
$img->resize("crop", $upload->getPath(), "10", "nom_image_perso");
$img->resize("crop", $upload->getPath(), "100/60", "crop_paysage");
$img->resize("crop", $upload->getPath(), "60/100", "crop_portrait");
$img->resize("wallpaper", $upload->getPath(), "", "wallpaper");
$img->setDeleteSource(); //ne fonctionne pas tres bien, je ne comprend pas trop pourquoi...
$message = $img->getErrorResize();
}
$message = $upload->getErrorUpload();
echo $message;
}
?>
Plus plus!
//Beejeridou
10 juin 2010 à 14:41
Ta manière de procéder peux fonctionner si tu passes par la classe UploadFile avant, car elle enlève les caractères spéciaux qui peuvent générer des bugs.
Cordialement!
10 juin 2010 à 12:59
pour faire en sorte que les vignettes aient le même nom que l'image source:
dans le fichier class.imageResize.php, fonction resize:
j'ai juste commenté la ligne:
//$this->uniqName($imgName);
l'auteur de cette class pourra me dire si c'est pas un peu barbare ce que j'ai fait... ;)
10 juin 2010 à 10:53
Je ne l'ai pas testée^^ désolé. Dis moi si ca marche. Tu dois normalement l'appeler après chaque méthodes resize();
L'idéal serait de retourner un tableau contenant toutes les images redimentionnées... c la prochaine modif.
9 juin 2010 à 20:06
$chemin_photo = $upload->getPath()."/".$upload->getName().$upload->getExtension();
echo $chemin_photo;
que j'ai mis tout à la fin du fichier class.imageResize.php quand le fichier uploadfile est appelé.
par contre pour celui qui est redimensionné... j'y arrive pas.
9 juin 2010 à 17:45
9 juin 2010 à 16:36
je souhaiterais, après l'upload, pouvoir récupérer les chemin d'accès(avec les noms des fichiers) vers les images uploadées, où faut il aller regarder et que faut il récupérer svp?
j'en aurais besoin pour les affectés à 2 champs d'un formulaire d'une page que j'appellerais à la fin de l'upload...
7 juin 2010 à 12:26
7 juin 2010 à 10:23
7 juin 2010 à 02:03
7 juin 2010 à 01:45
par contre, le nom du fichier redimensionné étant le même pour chaque type de redimensionnement, si l'on upload/resize plusieurs fichiers l'un après l'autre ils s'écrasent...
nom_du_dichier_d_origine + type_de_resize aurait était nickel comme nom de fichier... ;)
27 mai 2010 à 14:39
J'hésiterai pas à revenir poster s'il y a besoin.
Merci pour ces MAJ rapides et efficaces
@plus
27 mai 2010 à 00:58
J'ai trouvé la solution:
Il suffit maintenant de déclarer la methode setAlphaMode() et.... BINGO!!!
(je met la modif dans les 5 prochaines minutes...)
26 mai 2010 à 23:38
Tout compte fait, après diverses images uploadées et redimensionnées, je me suis trouvé confronté à un nouveau problème : la transparence des PNG.
Après redimensionnement, tout ce qui est transparent devient noir ... réglage à faire ?
26 mai 2010 à 20:22
Tout fonctionne nikel : PNG et homothétie sur la hauteur ...
Content d'avoir fait avancer cette classe d'un petit pas!
Belle classe
26 mai 2010 à 18:45
Voilà, j'ai donc rajouté le nouveau paramètre "homothetyHeight", pour fabriquer une image homothetique contrainte sur la hauteur.
Pour le png, j'ai également fait une pt'te modif qui fonctionne chez moi, dis moi si c'est pareil pour toi
26 mai 2010 à 17:19
comment ne redimensionner que la hauteur ?
Je voudrai que mes images soient redimensionnées avec une hauteur de 100px mais en conservant le ratio largeur/hauteur...
26 mai 2010 à 15:53
J'ai essayé, j'ai ajouté :
"
case "png": case "PNG":if($mimeType "image/png" || $mimeType "image/ppng") return true; break;
"
Cela ne génère plus d'erreur, l'image est bien créé avec le bon nom mais elle est vide.
26 mai 2010 à 15:25
Tu peux rajouter autant d'exceptions que tu le souhaites dans cette methode.
Voici une liste de type mime:
http://fr.selfhtml.org/divers/typesmime.htm
Bye!
26 mai 2010 à 12:16
Le redimensionnement ne fonctionne pas avec les png?
A chaque essai de redimensionnement de png j'ai :
"ERREUR : Le fichier semble être corrompu"
Y-a-t-il une astuce?
merci!
24 mai 2010 à 16:40
Par exemple, tu veux absolument une image rectangle (pour une bannière pub par ex), de 160px x 1300px, tu fais:
$img = new ImageResize($upload->getPath(), $upload->getName(), $upload->getExtension(), 1);
$img->setForceDimensions();
$img->resize("crop","ici/etla", "160/1300");
En espérant avoir pu t'aider.
24 mai 2010 à 16:27
24 mai 2010 à 15:20
Il te suffit d'initialiser la methode setForceDimensions().
C'est la ligne que j'ai commenté dans l'exemple que j'ai fourni. Petit rappel, si l'image est plus petite que le redimensionnement demandé, la qualité sera moins bonne vu que les pixels seront agrandis.
24 mai 2010 à 15:09
ces classes sont super.
Avant de bricoler, peux-tu me donner la marche à suivre pour forçer les dimensions ?
Je te remercie
24 mai 2010 à 14:32
24 mai 2010 à 11:38
Un petit apport sur ta classe upLoad, j'ai rajouté les extensions en majuscule pour le typeMime. Mon appareil photo génère des fichiers blabla.JPG qui étaient considérés comme corrompus.
23 mai 2010 à 17:26
Bonne continuation!
23 mai 2010 à 15:54
19 mai 2010 à 10:30
J'ai fais comme ca car je n'ai pas fait de méthode pour calculer la taille de la police dynamiquement en fonction de la taille de la nouvelle image... Certainement une modification à apporter dès que j'ai un brin de temps.
19 mai 2010 à 09:20
Felicitation puissante fonction mais je n'arrive pas a ecrire sur l'image.
encore Merci