[PHP]Redimensionner des photos !!

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [PHP]Redimensionner des photos !!

par kikadisa » 09 févr. 2007, 21:00

En fait ce qui ne marche pas c'est :
la redimension.
Pour l'instant le script m'affiche
1234(le nom de l'extension)5
Voila alors que j'aimerais bien voir le 6 en plus.
Mais je ne sais pas comment redimmensionner une image

par Ryle » 09 févr. 2007, 18:13

J'ai bien envie de te répondre que c'est normal que cela ne marche pas puisque cela n'a pas de pied ;)

Si tu nous disais plutôt ce qui ne fonctionne pas ? l'upload ? la redimension ? les sous dossiers ? ... as-tu un message d'erreur ?

T'as plein d'echo partout, lesquels s'affichent ? :)

Ps : as-tu bien le bon enctype dans ton formulaire ?

[PHP]Redimensionner des photos !!

par kikadisa » 08 févr. 2007, 23:22

Bonjour tout le monde
Récemment j'avais déjà laisser un message pour faire le script d'affichage d'une galerie photo.
Maintenant je passe à l'upload de la photo !!!

Maintenant passons aux choses sérieuse, On va attaqué les choses qui fachent.
Je vous explique tout le script :
1 - En premier je vérifie si il y a un nom d'album
2 - Puis je créer 3 dossier (un qui porte le nom de l'album, un autre qui est dedans avec les miniature et l'autre avec les originales)
3 - Je vérifie si ils sont TOUS créer
4 - Je vérifie si un champs sur les 5 d'upload est rempli
5 - Je vérifie la taille du fichier ou si il ne comporte pas d'erreur
6 - Puis on regarde si l'extension correspond à celle qui sont autorisées
7 - On donne le nom du fichier(microtime())
8 - On prends les dimensions du fichier
9 - On redimensionne l'image puis on la copie dans le dossier mini
10 - on la re-redimensionne puis on la copie dans le dossier
11 - Et enfin on déplace le fichier original dans le dossier avec les originaux.

Bien sur dès qu'il y un problème, on affiche un erreur.

Voici mon script pour un fichier :
<?php
function getextension($fichier) {
    $bouts = explode(".", $fichier);
    $extension = array_pop($bouts);
    return $extension;
        }


if(isset($_POST['nom']))
{
echo'1';
$dossier=$_POST['nom'];
$dossier_moy =mkdir('../'.$dossier, 0777);
$dossier_min =mkdir('../'.$dossier.'/mini', 0777);
$dossier_gde =mkdir('../'.$dossier.'/gde', 0777);
if(($dossier_moy==true) AND ($dossier_min==true) AND ($dossier_gde==true))
        {
        echo'2';
                if(!empty($_POST['fichier1']))//on vérifie si le fichier existe
                        {
                        echo'3';
                                if($_FILES['fichier1']['size'] > $taillemax OR $_FILES['fichier1']['error'] > 0)//on vérifie si il n'est pas trop gros ou si il ne comporte pas d'erreur
                                {
                                echo'Une erreur s\'est produite lors du téléchargement ou votre fichier peut être trop volumineux !!';//on annonce une erreur si c'est le cas.
                                }
                                else//sinon on continu.
                                {
                                echo'4';
                                $extension = getextension($_POST['fichier1']);
                                echo $extension;
                                        if($extension =='png' OR $extension=='gif' OR $extension=='jpg' OR $extension=='jpeg' OR $extension =='PNG' OR $extension=='GIF' OR $extension=='JPG' OR $extension=='JPEG')// si c'est la bonne extension on continu
                                        {
                                        $image1 = $_FILES['fichier1']; // le chemin
                                        $nom_fichier = microtime();
                                        echo'5';
                                        $dimension=getimagesize($image1); // prend la taille de l'image
                                                if($dimension[0]>150)
                                                {
                                                echo'6';
                                                $max=150; //taille a redimensionensionner
                                                $reduc=$max/$dimension[0];
                                                $coef_l=$max;
                                                $coef_h=$dimension[1]*$reduc;
                                                $chemin = imagecreatefromjpeg($image1);
                                                $nouvelle =imagecreatetruecolor ($coef_l, $coef_h);
                                                imagecopyresampled($nouvelle,$chemin,0,0,0,0,$coef_l,$coef_h,$dimension[0],$dimension[1]);
                                                imagejpeg($nouvelle,$image1);
                                                imagedestroy ($chemin);
                                                $copie_mini = move_uploaded_file($_FILES['fichier1'], '../'.$dossier.'mini/'.$nom_fichier );
                                                }
                                               
                                                if($dimension[0]>=700)
                                                {
                                                $max=700; //taille a redimensionensionner
                                                $reduc=$max/$dimension[0];
                                                $coef_l=$max;
                                                $coef_h=$dimension[1]*$reduc;
                                                $chemin = imagecreatefromjpeg($image1);
                                                $nouvelle =imagecreatetruecolor ($coef_l, $coef_h);
                                                imagecopyresampled($nouvelle,$chemin,0,0,0,0,$coef_l,$coef_h,$dimension[0],$dimension[1]);
                                                imagejpeg($nouvelle,$image1);
                                                imagedestroy ($chemin);
                                                $copie_moy = move_uploaded_file($image1, '../'.$dossier.'/'.$nom_fichier);
                                                }
                                                                                       
                                        $copie_gde = move_uploaded_file($_FILES['fichier1'], '../'.$dossier.'gde/'.$nom_fichier);
                                        }
                                        else//on dis que l'extension est mauvaise
                                        {
                                        echo 'L\'extension de votre fichier n\'est pas valide.';
                                        }
                                }
                        }
        else
        {
        echo'le dossier contenant les photos n\'a pu être créer';
        }
}
else
{
?>
<h1>Veuillez entrer un nom pour votre album</h1>
<?php
}
?>
J'ai bien suivi quelque tuto des zéros mais Sa marche pas !!
Ils m'ont déjà bien fait avancer je l'ai remerci beaucoup !!

Merci d'avance