View Full Version : uploader image
Magi-X
30 juin 2003, 17h11
hello,
me revoila avec une nouvelle question php :p
Bon voila, j'ai reussi a faire un ptit script ki upload des image vers un folder indiqué !
Et la j'ai mit que l'image ne peu pas depaser les 10000 octet ! Mais il y a pas moyen de verifier les pixels ???
Car on c avoir des images a 12000octet en 240x130 ainssi ke des 240x130 en 7000 octet !
J'ai essayer de trouver ca dans des script, mais je n'ai pas trouvé ! Est ce qu'il y a moyen ou pas de verifie sur la taille de resoltuion de limage ?
bastien
30 juin 2003, 18h16
va voir ça : http://www.phpapps.org/index.php?action=sources&go=voir_source&id=167
tu devrais y trouver ton bonheur !
$info = getimagesize("chemin de l'image sur le serveur");
La hauteur sera alors accessible par $info[0] et la largeur par $info[1] (ou bien l'inverse ... à vérifier donc ...)
Voilà tout :
array getimagesize ( string filename [, array imageinfo])
getimagesize() va déterminer la taille des images de type GIF, JPG, PNG, SWF, PSD ou BMP et en retourner les dimensions, le type d'image, et une chaîne type "height/width", à placer dans une balise HTML ou IMG normale.
Si l'accès au fichier filename est impossible, ou si ce n'est pas un format d'image supporté, getimagesize() retournera FALSE et générera une alerte.
getimagesize() retourne un tableau de 4 éléments. L'index 0 contient la largeur. L'index 1 contient la longueur. L'index 2 contient le type de l'image : 1 = GIF, 2 = JPG, 3 = PNG, 5 = PSD, 6 = BMP. L'index 3 contient la chaîne à placer dans les balises HTML : "height=xxx width=xxx".
Voilà tout :
array getimagesize ( string filename [, array imageinfo])
getimagesize() va déterminer la taille des images de type GIF, JPG, PNG, SWF, PSD ou BMP et en retourner les dimensions, le type d'image, et une chaîne type "height/width", à placer dans une balise HTML ou IMG normale.
Si l'accès au fichier filename est impossible, ou si ce n'est pas un format d'image supporté, getimagesize() retournera FALSE et générera une alerte.
getimagesize() retourne un tableau de 4 éléments. L'index 0 contient la largeur. L'index 1 contient la longueur. L'index 2 contient le type de l'image : 1 = GIF, 2 = JPG, 3 = PNG, 5 = PSD, 6 = BMP. L'index 3 contient la chaîne à placer dans les balises HTML : "height=xxx width=xxx".
Magi-X
30 juin 2003, 22h56
ok cool j'ai déjà apris beaucoup, mais j'ai encore une question!
Est ce qu'il y a moyen de verifier le width et height d'une image avant que l'on l'upload ?
donc ce serais ici:
$path = "images/news_image/";
$file_size_max = 10000;
$possible_size = $file_size_max;
$possible_extensions = array ('jpg', 'jpeg', 'gif');
$count_possible_extensions = count($possible_extensions);
$file_size = $_FILES[upload][size];
$file_type = $_FILES[upload][type];
$file = basename($_FILES[upload][name]);
$ext = explode(".", $file);
$file_extension = $ext[1];
$file_name = $ext[0];
# --> ce serais sympa de savoir verifier la resolution d'ici!
$info = getimagesize("../".$_FILES['upload']['name']);
echo $info[0];
echo "<br>";
echo $info[1];
Ou bien il faut l'uploader, puis verifiez, si c trop grand alors effacer?
Magi-X
30 juin 2003, 23h24
une autre question
pq il veut pas quand je fais ca:
$resolution = getimagesize ("http://home.tiscali.be/thomas.michiels/movienews/wamd.jpg");
echo $resolution[2];
fonji
1 juillet 2003, 01h56
Bonjour tout l monde, j suis tout nouveau !
Ce que tu peux faire déjà pour la taille de ton image c'est un getimagesize($uploadedfile_name) (remplace le unploadedfile par le nom de ton image)
Si tu l fais comme ca alors c'est que j suis trop fatigué pour comprendre ton script :(
Ensuite :
Provient du message de Magi-X
$resolution = getimagesize ("http://home.tiscali.be/thomas.michiels/movienews/wamd.jpg");
echo $resolution[2];
tu mets donc le résultat de ton getimagesize dans une variable tout à fait normale, et tu essayes de lire dans un tableau !
Ce que php risque de faire c'est de te sortir le deuxième caractère de la chaine, mais là je commence à confondre avec du pascal :eek:
essayes un echo($resolution);
Jogo
1 juillet 2003, 09h35
fonji, tu te mets le doigt dans l'oeuil juque je sais pas où maus profond.
En php un
echo $var;
est strictement égal à
echo($var);
Provient du message de fonji
dans une variable tout à fait normale, et tu essayes de lire dans un tableau !
En php il n'y à pas de "variables normales", tt est automatique, pour stoquer des nombres par exemple on aura pas besoin de déclarer la varible en int par exemple, on aura même pas besoin de la déclarer du tt, en php les variable ne se déclarent pas, sauf dans les classes.
Sinon, syntaxiquement son code est bon, je pense que si ça marche pas c'set par ce que c'set une URL, comme ça fait bien longtemps que j'ai utilisé cette fonction et que j'ai jamais éssayé avec des url je sais pas, faudrais faire des tests, mais pour ça j'ai la fleme ;) ! Je pense que getimagesize() ne prend que els images locales, mais je n'affirme rien !
Magi-X
1 juillet 2003, 22h08
et ils on fait comment ici alors sur le site?
quand tajoute une image, c'est quand meme aussi un url!!
Magi-X
1 juillet 2003, 22h26
bon je viens daprendre un truc la!
J'ai installer apache sur mon ordi et php, et j'ai tester le script suivant:
<?php
$resolution = getimagesize ("http://home.tiscali.be/thomas.michiels/movienews/wamd.jpg");
echo $resolution[0];
?>
et ca fonctionne, mais des que je le met sur mon serveur de lycos ca ne fonctionne plus!!! C'est lycos qui a desactivé ca? :confused:
Jogo
1 juillet 2003, 22h37
Provient du message de Magi-X
C'est lycos qui a desactivé ca?
Sûrement, car ça nécéssite une reqête html, c'est plus comteux en ressources que de faire ça avec une image en local. C'est sûrement pour ça que lycos l'a désactivé.
T'a plus qu'a te trouver un autre hébergeur !
Magi-X
1 juillet 2003, 23h41
Provient du message de Jogo
Sûrement, car ça nécéssite une reqête html, c'est plus comteux en ressources que de faire ça avec une image en local. C'est sûrement pour ça que lycos l'a désactivé.
T'a plus qu'a te trouver un autre hébergeur !
Oui c'est ca, mais c'est chiant quand même, comment veut on aprendre le php correctement !!! Si faut déjà aller louer un host, pfff !
Solution a Magi-X ^^ : Pour l'instant on continue a faire le site, jusque quand il est fini, quand c'est le cas, on loue un serveur et on active le ptit script pour verifie la resolution :D
Jogo
2 juillet 2003, 10h56
Qu'est ce que tu veux, c'est pas nouveau que les hébergeurs gratuits désactivent ou brident des fonctions, prend par exemple la fonction mail() qui ne se comporte pas pareil chez tous les hébergeur avec online ou nexen (me souvient plus) qui l'a transformé en email().
Bref, un petit hébergement chez un hébergeur pas cher peut-être très utile.
http://www.phpnet.org
Magi-X
2 juillet 2003, 11h51
C'est louche ce truc non? C'est très même très bon marché !!!
Enfin j'en sais rien mais bon c'est très louche quand meme !
Tu sais pas me dire ou es le hik ?
Jogo
2 juillet 2003, 13h24
Bah ça fait un petit plus d'un an que je suis chez eux, ils sont clean.
C'est une association, donc ils font pas de bénéfices c'est tt.
Lq première année on avait pris l'offre à 25€, maintant on à celle à 100€. J'ai jamais eu de gros problème, juste quelques petites interuptions la première année quand il s'occupait de phpnet en plus de son travail, mais maintenant, ça fait bien 6 moiq que j'ai pas eu de problèmes.
Donc, je te le dis c'set clean !
Magi-X
2 juillet 2003, 14h14
et le nom de domaine est compter dans le pack? ou il faut le payer apart?
EDIT: j'ai rien di je viens de le trouver sur le site! :rolleyes:
Matt
2 juillet 2003, 17h06
Sinon, si tu fais pas confiance à leurs tarifs, tu peux toujours essayer Sivit. 3€75 / mois pour le 100 Mo si tu t'engage pour 2 ans.
Perso je suis chez eux depuis août 2001 et j'ai pas à me plaindre (par contre, si mes souvenirs sont exacts, NDFR premier du nom s'était fait viré pour consommation excessive de ressources ... :confused:)
fonji
10 juillet 2003, 09h21
Provient du message de Jogo (y a un bout d temps...)
En php il n'y à pas de "variables normales", tt est automatique, pour stoquer des nombres par exemple on aura pas besoin de déclarer la varible en int par exemple, on aura même pas besoin de la déclarer du tt, en php les variable ne se déclarent pas, sauf dans les classes.
Tout à fait d'accord, je me suis mal exprimé. Il y a des types de variables, mais php s'en occupe lui-même. Mais le truc c'est que si tu regardes son code, il fait un print $variable[2]
les crochets après une variable précisent l'élément d'un tableau, j'ai absolument aucune idée de ce que ça donnerai si $variable est une chaine de cractères... Selon moi tu vois, il vaudrait mieux ne pas les mettres, si tu veux obtenir un résultat complet. Tu suis mon raisonnement ou je sais vraiment pas parler ?
Matt
10 juillet 2003, 16h03
Si $variable est une chaîne de caractère, je crois qu'il affichera le 3ème caractère de la chaîne ...
vBulletin® v3.7.3, Copyright ©2000-2008, Jelsoft Enterprises Ltd.