Déplacer et miniaturiser une photos

Signaler
Messages postés
5
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
13 février 2007
-
Messages postés
3
Date d'inscription
samedi 10 février 2007
Statut
Membre
Dernière intervention
11 février 2007
-
Bonjour,
Voila je fais un site actuellement et je souhaiterais uploadé des photos.
Mais arrivé à la vérification move_uploaded_file, sa plante.
De plus je suis à la recherche de script pour faire 2 miniatures.
Pouvez-vous m'aidez ?
Voici mon script.
Désolé c'est un peu long et lours, mais ceci est un forum d'entraide non ? lol :
<?php

function getextension($fichier)
{
$bouts = explode(".", $fichier);
$extension = array_pop($bouts);
return $extension;
}

if(isset($_POST['nom']))
{
echo'1';
$taillemax=$_POST['max'];
$dossier=$_POST['nom'];
echo$dossier;
$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
{
echo'
../'.$dossier.'/gde/'.$_POST['fichier1'];
$ze = move_uploaded_file($_FILES['fichier1']['tmp_name'],'../'.$dossier.'/gde/'.basename($_FILES['fichier1']['tmp_name']));
if($ze == true)
{echo'6';}
else
{
echo'raté';
}
}
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
{
?>
Veuillez entrer un nom pour votre album
<?php
}
???>

3 réponses

Messages postés
510
Date d'inscription
lundi 27 novembre 2006
Statut
Membre
Dernière intervention
5 juillet 2009
3
Ce serait bien d'écrire du code, pas des patés, c'est illisible comme ca.
Pour ton erreur de move_uploaded_file, il te dit quoi exactement ?
Est tu sur d'avoir les droits d'écriture ?
Messages postés
354
Date d'inscription
dimanche 3 juin 2001
Statut
Membre
Dernière intervention
11 mars 2013

essaye d'utiliser rename à la p'lace de move_uploaded_file() avec la même syntaxe... des fois ça aide. Pour ce qui est des miniatures, tu peux faire comme ça:

switch(substr($file,strrpos($file, "."))){

default:

$im=imagecreatefromjpeg($file);
break;

case ".png":

$im=imagecreatefrompng($file);

break;

case ".gif":

$im=imagecreatefromgif($file);

break;

}
// on copie aussi et on gŽnre le thumbnail
//max = 800px
$max = 800;
if(imagesy($im)>imagesx($im)){

$im2=imagecreatetruecolor($max*(imagesx($im)/imagesy($im)),$max);

}else{

$im2=imagecreatetruecolor($max,$max*(imagesy($im)/imagesx($im)));

}

imagecopyresized($im2,$im,0,0,0,0,imagesx($im2),imagesy($im2),imagesx($im),imagesy($im));
imagejpeg($im2,$nom . '.jpg',100);


Ca prends une image (nom du fichier dans $file), ca t'en fait un .jpg dont le maximum etrre hauteur et largeur fait 800px ($max) et ça te l'exporte dans le fichier $nom.jpg voila...
Messages postés
3
Date d'inscription
samedi 10 février 2007
Statut
Membre
Dernière intervention
11 février 2007

Voilà ce que j''essaie de faire mais le redimensionnement ne fonctionne pas. Je sais pas pourquoi. Je pense que c'est une base inspirée de code existant sur le web :
    // copie du fichier
    if  (move_uploaded_file($_FILES['photo']['tmp_name'], $dest_fichier) == TRUE)
        {
        $url_copy = $dest_dossier_copy . $dest_fichier;
        if (copy($dest_fichier,$url_copy) == TRUE) // deplacement dans le dossier de destination final
            {
            $aok = unlink($dest_fichier); // si déplacement OK
            if ($aok != 0) { // Redimensionnement
                // Calcul des nouvelles dimensions
                if ($width > $height && $width != $max_width) {// Cas photo horizontale
                    $ratio = $width/$max_width;
                    $n_largeur = $max_width;
                    $n_hauteur = $height / $ratio;
                }
                if ($height > $width && $height != $max_height) {// Cas photo verticale
                    $ratio = $height/$max_height;
                    $n_largeur = $width / $ratio;
                    $n_hauteur = $max_height;
                }

                //création de la destination
                $destination = imagecreatetruecolor($n_largeur, $n_hauteur);
           
                //ouverture de la source
                $source = imagecreatefromjpeg($url_copy);
           
                //redimensionnement
                imagecopyresized($destination, $source, 0, 0, 0, 0, $n_largeur, $n_hauteur, $largeur, $hauteur);
                imagejpeg($destination);
                imagedestroy($destination);
                imagedestroy($source);
                }           
            }
        }

Merci pour votre aide