Page 1 sur 1

Duplication de photos déjà présentent sur le FTP

Posté : 09 janv. 2013, 11:12
par Xeed
Bonjour,

Je tente de dupliquer des photos présentent sur mon FTP à la manière utilisée lors de la validation d'un formulaire avec champs file.
Seulement, les photos sensées être dupliqué, n'apparaissent pas sur le FTP.

voici mon script de lecture de dossier FTP :
<?php
function resize_rename ($photo, $NouvelleLargeur, $ajout_nom = "") {
  // EDITION
  echo $photo;
  $ImageChoisie = imagecreatefromjpeg("uploads/".$photo);
  $TailleImageChoisie = getimagesize("uploads/".$photo);
   
  $Reduction = ( ($NouvelleLargeur * 100)/$TailleImageChoisie[0] );
  $NouvelleHauteur = ( ($TailleImageChoisie[1] * $Reduction)/100 );

  $NouvelleImage = imagecreatetruecolor($NouvelleLargeur , $NouvelleHauteur) or die ("Erreur sur $NouvelleImage");
  imagecopyresampled($NouvelleImage , $ImageChoisie, 0, 0, 0, 0, $NouvelleLargeur, $NouvelleHauteur, $TailleImageChoisie[0],$TailleImageChoisie[1]);

  $extension = strstr($NouvelleImage, ".");
  $nouvelle_extension_et_nom = $ajout_nom.$extension;
  $ajout_nom = str_replace($extension, $nouvelle_extension_et_nom, $NouvelleImage);

  if (move_uploaded_file($NouvelleImage, $ajout_nom)) { echo " upload $photo "; } else { echo " Erreur upload $photo "; }
  imagedestroy($NouvelleImage);
}

if($handle = opendir('./uploads')) {
  // COMPTEUR
  $i = 0;
  while (false !== ($entry = readdir($handle))) {
    $i++;
    $NE_PAS_TRAITER = 0;
    $fichier = $entry;
    echo "<br> ".$fichier." ";
    // CONTROLE ANTI MAUVAIS FICHIERS 
    if ($fichier == "." || 
        $fichier == ".." || 
        $fichier == "admin-blog_news.cache" || 
        $fichier == "index.php" || 
        $fichier == "HTML") { $NE_PAS_TRAITER = 1; }


    /* This is the correct way to loop over the directory. */
      // Ceci affichera "is is a Simple text." car 'i' correspond au premier
      $recherche = strpbrk($fichier, '_thumbnail');
      $recherche2 = strpbrk($fichier, '_preview');
      $recherche3 = strpbrk($fichier, '_thumbnail');
      if ($recherche == "" && $recherche2 == "" && $recherche3 == "" && $NE_PAS_TRAITER == 0) {
        // ON TRAITE LE FICHIER
        echo "$fichier miniature : ";
        echo resize_rename($fichier, "240", "_thumbnail");
        echo " | $fichier previsualisatuion : ";
        echo resize_rename($fichier, "480", "_preview");
        echo " | $fichier normal (sans sufixe) : ";
        echo resize_rename($fichier, "640", "");
        echo "\n";         
        // ON SUPPRIME LA PHOTO ORIGINALE QUI DETYIENT UN POIDS CONSEQUENT SUR LE FTP
    	   unlink('./uploads/'.$fichier);
       // SI UN FICHIER DEJA TRAITE EST PRIS DANS LA BOUCLE ON NE LE TRAITE PAS
       } else {
        echo "$fichier : Ce fichier est une miniature déjà traitee ou fichier interdit !\n";
       }   
    }
closedir($handle);
}
?>
Merci d'avance

Re: Duplication de photos déjà présentent sur le FTP

Posté : 09 janv. 2013, 11:44
par xTG
Pourquoi vouloir utiliser move_uploaded_file alors que c'est une image qui est créée sur le serveur ?
De plus cette fonction ne prend pas en paramètre une image mais un chemin.

Il faut la remplacer par une fonction telle que : http://fr2.php.net/manual/en/function.imagejpeg.php

Re: Duplication de photos déjà présentent sur le FTP

Posté : 09 janv. 2013, 11:46
par Mazarini
move_uploaded_file($NouvelleImage, $ajout_nom) est prévu pour les fichier uploadé dans le répertoire temporaire. $NouvelleImage doit être un nom de fichier sans chemin.

Il faudrait que tu ajoutes des traces dans le déroulement du script pour voir ce qui coince et à quel endroit. En particulier voir le contenu de $NouvelleImage et de $ajout_nom.

Avec l'age, on devient lent :roll:

Re: Duplication de photos déjà présentent sur le FTP

Posté : 09 janv. 2013, 11:54
par Xeed
Merci !
Ca fonctionne avec l('utilisation de imagejpeg()

Bonne continuation