Utilisation d'une Class

Eléphant du PHP | 250 Messages

18 janv. 2011, 19:25

Bonsoir,

J'ai trouvé une class, mais ayant pas l'habitude de les utiliser, je n'arrive pas à l'intégrer dans mon code.

Mon script upload des fichiers, et la class est censée redimensionner les fichiers.
include("class_resize.php");

if (file_exists('imgs/' . $_FILES['file']['name'][$key]))
      {
      echo $_FILES['file']['name'][$key] . ' existe déjà !<br><br>';
      }
    else
      {
      move_uploaded_file($_FILES['file']['tmp_name'][$key],
      'imgs/' . $_FILES['file']['name'][$key]);
      echo 'Enregistrée en: ' . 'imgs/' . $_FILES['file']['name'][$key].'<br><br>';
      }
    }
  else
  {
  echo 'Fichier invalide !';
  }
L'appel à la Class :
$thumb = new Image("chemin/$images");
$thumb->width(200);
$thumb->save();
J'ai essayé de créer une fonction et de l'intégrer dans move_uploaded_file, mais bon ça doit pas être ça :?

Auriez-vous une idée ?

Merci
J'ai un petit éléphant rose chez moi avec dessus PHP woman :p
Pour une Europe sans hypocrisie, n'y barratins.
L'euro caca j'en veux plus. Les conneries c'est fini.

Eléphant du PHP | 250 Messages

18 janv. 2011, 20:03

La class fonctionne avec ceci :
$thumb = new Image('imgs/Hydrangeas.jpg');
         $thumb->width(200);
         $thumb->save();
Mais avec ma boucle Foreach, j'ai un petit soucis d'implémentation.

ça se bouscule.... :mrgreen:
J'ai un petit éléphant rose chez moi avec dessus PHP woman :p
Pour une Europe sans hypocrisie, n'y barratins.
L'euro caca j'en veux plus. Les conneries c'est fini.

Eléphant du PHP | 250 Messages

18 janv. 2011, 20:31

J'approche, c'est chaud :mrgreen:
//print_r(scandir("imgs/"));
$imag=scandir("imgs/");
for($i=2;$i<=count($imag);$i++)
{
    echo $imag[$i].' ';

$thumb = new Image($imag[$i]);
         $thumb->width(200);
         $thumb->save();
}
Warning: getimagesize(Hydrangeas.jpg) [function.getimagesize]: failed to open stream: No such file or directory

Mais, il me manque le petit truc :lol:
J'ai un petit éléphant rose chez moi avec dessus PHP woman :p
Pour une Europe sans hypocrisie, n'y barratins.
L'euro caca j'en veux plus. Les conneries c'est fini.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

18 janv. 2011, 21:16

salut,

tu ne fournit pas une image à getimagesize ou alors tu n'a pas les droits pour utiliser le fichier ou le fichier n'existe.

sans le code de la classe on ne pourra pas t'aider.

Pour faire upload + redimensionnement il y a la classe de AB (forum contribution) qui est bien suivie :)


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 250 Messages

18 janv. 2011, 21:28

Merci pour ta réponse moogli

Voici le lien:
http://www.jarodxxx.com/index.php?post/ ... ename-save

La class marche, ya pas de soucis, c'est juste que, je cherche comment l'intégrer :roll:

Celle de AB est effectivement une class très complète en l'occurrence. Mais, je vais resté avec la mienne peut être moins complète, mais suffisante pour moi.

Tu as aussi un joli script :wink:
http://www.phpjungle.info/cours/10-comm ... -http.html
J'ai un petit éléphant rose chez moi avec dessus PHP woman :p
Pour une Europe sans hypocrisie, n'y barratins.
L'euro caca j'en veux plus. Les conneries c'est fini.

Eléphant du PHP | 250 Messages

18 janv. 2011, 23:25

ça yier, j'ai réussie, j'en jouirai presque :mrgreen:
$dossier = opendir('imgs/');
   $dir_array = array();
    while (false !== ($file = readdir($dossier)))
        {
        if($file!="." && $file!="..")
            {
            $dir_array[] = $file;
            }
         }
 closedir($dossier);
 foreach ($dir_array as $val)
     {   $thumb = new Image('imgs/'.$val);
         $thumb->width(200);
         $thumb->save();
     } 
Merci pour ton aide moogli :wink:
J'ai un petit éléphant rose chez moi avec dessus PHP woman :p
Pour une Europe sans hypocrisie, n'y barratins.
L'euro caca j'en veux plus. Les conneries c'est fini.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

19 janv. 2011, 00:16

pour ce qui est de mon code faudrait que je le refasse un peu mieux !

Content que tu ai trouvé ta solution

@+
Il en faut peu pour être heureux ......

ViPHP
ViPHP | 5462 Messages

19 janv. 2011, 10:58

tu pourrais utiliser FilesystemIterator ca serait plus simple
$dir = new FilesystemIterator( 'imgs/');

foreach ($dir as $file)
{  
    $thumb = new Image($file->getRealpath());
    $thumb->width(200);
    $thumb->save();
}

Eléphant du PHP | 250 Messages

19 janv. 2011, 15:12

Hum, stealth35,

Ya pas une erreur dans l'appel de la class ? :lol:
$dir = new SplFileInfo( 'imgs/');

foreach ($dir as $file)
{  
    $thumb = new Image($file->getRealpath());
    $thumb->width(200);
    $thumb->save();
}
http://www.php.net/manual/fr/splfileinf ... alpath.php

Enfin, je n'ai pas l'habitude d'utiliser des class et la poo avec douceur svp :roll:
J'ai un petit éléphant rose chez moi avec dessus PHP woman :p
Pour une Europe sans hypocrisie, n'y barratins.
L'euro caca j'en veux plus. Les conneries c'est fini.

ViPHP
ViPHP | 5462 Messages

19 janv. 2011, 15:13

FilesystemIterator pas SplFileInfo

Eléphant du PHP | 250 Messages

19 janv. 2011, 15:39

FilesystemIterator pas SplFileInfo
Ha bon* , je dois rien comprendre à l'organisation du site Php, ya un truc qui m'échappe 8-|Merci quand même.

*I think in my head--> Ben, je pige pas car la méthode getRealpath() s'appel avec la class splDileInfo

...
J'ai un petit éléphant rose chez moi avec dessus PHP woman :p
Pour une Europe sans hypocrisie, n'y barratins.
L'euro caca j'en veux plus. Les conneries c'est fini.

Eléphant du PHP | 250 Messages

19 janv. 2011, 15:49

Ha! Eureka, fallait m'expliquer.
C'est quoi un itérateur : http://fr.wikipedia.org/wiki/It%C3%A9ra ... ception%29

Etant un peu c... par nature :mrgreen:

Donc, si je comprends bien, la class FilesystemIterator parcours la class SplFileInfo. Donc c'est la class mère.
J'ai un petit éléphant rose chez moi avec dessus PHP woman :p
Pour une Europe sans hypocrisie, n'y barratins.
L'euro caca j'en veux plus. Les conneries c'est fini.

ViPHP
ViPHP | 5462 Messages

19 janv. 2011, 15:53

FilesystemIterator pas SplFileInfo
Ha bon* , je dois rien comprendre à l'organisation du site Php, ya un truc qui m'échappe 8-|Merci quand même.

*I think in my head--> Ben, je pige pas car la méthode getRealpath() s'appel avec la class splDileInfo

...

chaque iteration de FilesystemIterator te renvoie un SplFileInfo

Eléphant du PHP | 250 Messages

19 janv. 2011, 16:12

chaque iteration de FilesystemIterator te renvoie un SplFileInfo
Si c'est pas beau ça la simplicité :mrgreen:
$dir = new FilesystemIterator($chemin);
foreach ($dir as $file)
{
    if($file!="." && $file!="..")
        {
    $unique = md5( uniqid() );
    $thumb = new Image($file->getRealpath());
    $thumb->width(200);
    $thumb->name($unique);
    $thumb->save();
        }
}
Mais, j'ai encore un soucis, car en rajoutant le $thumb->name(renommer), ben j'ai des fichiers en double. :non:
Je pense qu'il va falloir effacer ça :
move_uploaded_file($_FILES['file']['tmp_name'][$key],
      $chemin . $_FILES['file']['name'][$key]);
Que des soucis :roll:
J'ai un petit éléphant rose chez moi avec dessus PHP woman :p
Pour une Europe sans hypocrisie, n'y barratins.
L'euro caca j'en veux plus. Les conneries c'est fini.

ViPHP
ViPHP | 5462 Messages

19 janv. 2011, 16:18

pas besion de faire : if($file!="." && $file!="..")

FilesystemIterator ne prend pas les . en compte, DirecotryIterator les prend mais y'a une méthode pour ca c'est ->isDot()
pas besoin de rajouter des choses a ce que j'ai mis :wink: