Utilisation d'une Class

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 : Utilisation d'une Class

Re: Utilisation d'une Class

par diabless6 » 19 janv. 2011, 22:14

Je me réponds à moi même : On peut pas, après application de la class pour redimensionner, il faut supprimer celles qui ont été uploadé.
Pour ce faire, unlik()

Voilà :wink:

Re: Utilisation d'une Class

par diabless6 » 19 janv. 2011, 18:34

heu j'ai l'impression qu'il y a du mélange la :)

- tu utilise le fichier temporaire pour le redimensionnement et c'est ce fichier que tu copier au bon endroit.
Oui, c'est ce que je réfléchissais parce que j'ai un soucis de fichier en double, alors j'essaie d'intégrer ma class dans la fonction :
$img_tmp=$_FILES['file']['tmp_name'][$key];
     $unique = md5( uniqid() );
    $thumb = new Image($img_tmp);
    $thumb->width(200);
    $thumb->quality(50);
    move_uploaded_file($thumb->name($unique),$chemin.$thumb->save());
Le tout est dans une boucle, dans le tmp du serveur j'ai plein de 0c82c5177800657c0ac8a764daf0e348.tmp mais j'arrive pas à les uploader avec la class car sans ça marche :roll:

résultat: :evil:

Code : Tout sélectionner

C:\xampplite\htdocs\www\projets\essais\Ajax\upload\imgs/Upload: Penguins.jpg Type: image/jpeg Size: 759.6044921875 Kb Temp file: C:\xampplite\tmp\php1D2A.tmp

Re: Utilisation d'une Class

par moogli » 19 janv. 2011, 17:59

heu j'ai l'impression qu'il y a du mélange la :)

tu fait un upload d'image suivis du redimensionnement de cette image ?

tu a deux école :
- tu copie le fichier dans ton "espace perso" et la le move_uploaded_file est "obligatoire" pour valider l'upload, c'est juste après cette fonction que tu utilise ta classe de redimensionnement.
- tu utilise le fichier temporaire pour le redimensionnement et c'est ce fichier que tu copier au bon endroit.

dans tous les cas FilesystemIterator permet le parcourt du système de fichier, c'est inutile si tu fait l'upload d'un fichier, c'est utile si veut faire le redimensionnement sur un dossier complet (avec plein de fichier) ;)

pour ce qui est de la gestion de l'unicité du fichier c'est à gérer lors de la copie définitive du fichier (avec uniqid par exemple c'est une bonne idée.


@+

Re: Utilisation d'une Class

par diabless6 » 19 janv. 2011, 16:27

C'est retiré :)

Avec la class FilesystemIterator, peut on remplacer la fonction move_uploaded_file() ?

Parce que sinon, il faudrait que je supprime les fichiers en double, mais ça fait pas très propre, j'en conviens :evil:

Re: Utilisation d'une Class

par stealth35 » 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:

Re: Utilisation d'une Class

par diabless6 » 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:

Re: Utilisation d'une Class

par stealth35 » 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

Re: Utilisation d'une Class

par diabless6 » 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.

Re: Utilisation d'une Class

par diabless6 » 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

...

Re: Utilisation d'une Class

par stealth35 » 19 janv. 2011, 15:13

FilesystemIterator pas SplFileInfo

Re: Utilisation d'une Class

par diabless6 » 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:

Re: Utilisation d'une Class

par stealth35 » 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();
}

Re: Utilisation d'une Class

par moogli » 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

@+

Re: Utilisation d'une Class

par diabless6 » 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:

Re: Utilisation d'une Class

par diabless6 » 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