[PHP] prob repertoire, rename, copie

Fermé
sebalab - 12 févr. 2008 à 21:46
rescue Messages postés 1039 Date d'inscription vendredi 16 novembre 2007 Statut Contributeur Dernière intervention 27 mars 2019 - 13 févr. 2008 à 09:22
Bonjour,

J'ai un souci avec ce que j'aimerai faire:

j'ai des photos dans un dossier que j'aimerai transférer dans un autre dossier et c'est dans ce dernier dossier que je traiterai la photo changé de place pour en faire des vignettes.

le tout doit etre automatisé car je doit traiter un grand nombre de photo d'ou l'utilisation d'une boucle, voila ce que j'ai fait mais ca ne fonctione pas , il ne me transfert pas la photo dans mon dossier de direction ( normalement le traitement des vignettes marche bien ce n'est pas ca qui est a changer)

Pouvez vous m'aider , voici le code :

$content_dir = $_SERVER["DOCUMENT_ROOT"]."/phot/"; // dossier de destination (il est en chmod 777)
$taille=150; // taille maxi de la vignette en pixels
$taille1=200;
$taille2=50;

for($nfile=0; $nfile <= $noutorise; $nfile++) {
$nfile2 = str_pad($nfile, 2,"0", STR_PAD_LEFT);
$nom_fichier = "$id_natio$nfile2$tab[1].jpg";
$dossier = "$_SERVER[DOCUMENT_ROOT]/adminimmo/$nom/"; // dossier ou je prend la photo $nom est un dossier qui change tous les jours
$fichier = $dossier.$nom_fichier;
echo "img origine : $fichier <br>"; // juste pour visualiser ce qui se passe
// traitement de la photo
$name_file = ($id_ag._.$id_bien._.$id_natio.$nfile2.$tab[1].".jpg"); // nom que la photo prendra apres

rename($fichier, $content_dir.$nom_fichier);

// création d'une vignette pour une image jpg
// récupération des dimensions de l'image
list($x,$y)=getimagesize($content_dir.$nom_fichier);

// calcul des dimensions aux proportions de la vignette
if ($x>$y) { $y2=$y/($x/$taille); $x2=$taille; }
if ($x<$y) { $x2=$x/($y/$taille); $y2=$taille; }

if ($img=imagecreatefromjpeg($content_dir . $name_file)) {
// création de la vignette vide (img2)
$img2=imagecreatetruecolor($x2,$y2);
imagecopyresampled($img2,$img,0,0,0,0,$x2,$y2,$x,$y); // redim et copie
imagejpeg($img2,$content_dir . "mini_2_" . $name_file,70); // enregistrement
imagedestroy($img); // libération de la RAM
imagedestroy($img2);

} else {
echo'Travail impossible sur ce fichier';
}
// récupération des dimensions de l'image
list($x2,$y2)=getimagesize($content_dir.$nom_fichier);

// calcul des dimensions aux proportions de la vignette
if ($x2>$y2) { $y22=$y2/($x2/$taille2); $x22=$taille2; }
if ($x2<$y2) { $x22=$x2/($y2/$taille2); $y22=$taille2; }

if ($img2=imagecreatefromjpeg($content_dir . $name_file)) {
// création de la vignette vide (img2)
$img22=imagecreatetruecolor($x22,$y22);
imagecopyresampled($img22,$img2,0,0,0,0,$x22,$y22,$x2,$y2); // redim et copie
imagejpeg($img22,$content_dir . "mini_3_" . $name_file,70); // enregistrement
imagedestroy($img2); // libération de la RAM
imagedestroy($img22);

} else {
echo'Travail impossible sur ce fichier';
}
// récupération des dimensions de l'image
list($x1,$y1)=getimagesize($content_dir.$nom_fichier);

// calcul des dimensions aux proportions de la vignette
if ($x1>$y1) { $y12=$y1/($x1/$taille1); $x12=$taille1; }
if ($x1<$y1) { $x12=$x1/($y1/$taille1); $y12=$taille1; }

if ($img1=imagecreatefromjpeg($content_dir . $name_file)) {
// création de la vignette vide (img2)
$img12=imagecreatetruecolor($x12,$y12);
imagecopyresampled($img12,$img1,0,0,0,0,$x12,$y12,$x1,$y1); // redim et copie
imagejpeg($img12,$content_dir . "mini_1_" . $name_file,70); // enregistrement
imagedestroy($img1); // libération de la RAM
imagedestroy($img12);

$date_today = date("d/m/Y", mktime(0, 0, 0));
if ($nfile2=="00") {$principale="oui";} else {$principale="non";}
// on crée la requête SQL
$sql_1 = "INSERT INTO $T_photos (id_photo,id_ag,id_bien,url_img,url_img1,url_img2,url_img3,principale,validite,date_ajout) VALUES ('','$id_ag','$id_bien','$name_file','mini_1_$name_file','mini_2_$name_file','mini_3_$name _file','$principale','oui','$date_today')";
// on envoie la requête
$req = mysql_query($sql_1) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
echo "transformé : $name_file<br>";
//
} else {
echo'Travail impossible sur ce fichier';
}

}

merci d'avance de votre aide
A voir également:

1 réponse

rescue Messages postés 1039 Date d'inscription vendredi 16 novembre 2007 Statut Contributeur Dernière intervention 27 mars 2019 136
13 févr. 2008 à 09:22
Bonjour,

Je pense que ton problème vient de la lecture dans le répertoire ou se trouve tes photos, sauf erreur de ma part.

Je ne vois aucune fonction comme :
opendir() pour ouvrir le répertoire
readdir() pour lire dans le répertoire

Ensuite :
Un while() ou ou for() pour récupérer ces photos les mettre dans une (variable tableau par exemple) pour les traités avec rename() par la suite.

@+
0