IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Autres composants PHP Discussion :

Gestion des fichiers sur le serveur


Sujet :

Autres composants PHP

  1. #1
    Membre habitué Avatar de reeda
    Formateur en informatique
    Inscrit en
    Août 2006
    Messages
    367
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 367
    Points : 150
    Points
    150
    Par défaut Gestion des fichiers sur le serveur
    Bonjour tout le monde,

    je voudrais faire une petite application pour la gestion d'images dans differents dossier sur le serveur,

    j'aimerai bien savoir si Zend possède des méthodes qui permettent de faire ce genre d'operations,

    Merci d'avance

    Bien cordialement

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 98
    Points : 93
    Points
    93
    Par défaut
    Bonjour,

    Pour ma part, je n'ai pas encore testé tout le framework.
    Mais tu trouveras surement des choses interessantes pour ton project tel que :

    1. l'element Zend_File_Transfert (je te conseils vivement de lire la doc)
    2. Et dans le Zend_Form, l'element Zend_Form_Element_File qui utilise le 1er cité (pour l'upload http de fichier au travers de formulaires)


    Maintenant, pour les manipulation simple PHP a tout l'atiraille nécessaire: rename(), unlike(), ...

    En gros, va falloire surfer un peu sur :

    http://framework.zend.com/manual/en/zend.file.html
    http://framework.zend.com/manual/en/zend.form.html
    et biensur http://www.php.net

  3. #3
    Membre habitué Avatar de reeda
    Formateur en informatique
    Inscrit en
    Août 2006
    Messages
    367
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 367
    Points : 150
    Points
    150
    Par défaut Ouvrir un dossier sur le serveur
    salut,

    En effet la classe Zend_File se charge des transfert des fichier sur le serveur,
    J'ai un peu lu ce que peut faire cette classe, mais je n'ai pas pu trouver ce dont j'ai besoin,

    je voudrais ouvrir des dossiers sur le serveur, les parcourir et en apporter des modification. Avec php (tout court) il y a des fonctions pour cela ( opendir, readdir, ...).

    La plupart des fonctions de Zend_File s'appliquent au transfert de fichiers,

    Merci
    Bien cordialement

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 98
    Points : 93
    Points
    93
    Par défaut
    Vu que PHP dispose déjà de toute les fonctions nécessaires, il n'y a pas besoin Zend Framework à ce niveau

  5. #5
    Membre habitué Avatar de reeda
    Formateur en informatique
    Inscrit en
    Août 2006
    Messages
    367
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 367
    Points : 150
    Points
    150
    Par défaut
    Citation Envoyé par oliviercuyp Voir le message
    Vu que PHP dispose déjà de toute les fonctions nécessaires, il n'y a pas besoin Zend Framework à ce niveau
    salut,

    mais ca marche pas !!
    j'ai essayé sur le même serveur, un parcours d'un dossier dans serveur sans Zend, ca marche très bien,

    mais Zend il n'exécute même pas la fonction is_dir(), à chaque fois il dit qu'il n'arrive pas à ouvrir et il sort le truc de : No such file or directory

    Merci
    Bien cordialement

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 98
    Points : 93
    Points
    93
    Par défaut
    Salut reeda,

    Je pense que le problème doit venir d'autre part...
    Pour ma part, j'ai une gestion d'upload de videos et d'images dans mon projet en Zend Framework MVC. Et j'utilise les function unlink, rename, ... sans soucis.
    Le framework n'est un qu'un ensemble de librairies qui ne changent pas le language sur lequel elles reposent (PHP).
    Si tu nous montrais un peu de code avec qques explications en plus, on pourrait peut-être plus t'aider.

    A+,
    Olivier

  7. #7
    Membre habitué Avatar de reeda
    Formateur en informatique
    Inscrit en
    Août 2006
    Messages
    367
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 367
    Points : 150
    Points
    150
    Par défaut
    salut,

    voila le ptit bout de code que je donne au controleur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function imagesAction(){
    	$this->view->title = "Affichage d'images aléatoirement";
    	$url= $this->view->baseUrl();
    	$url.="/public/images_test/";
     
    	if (is_dir($url))
    		$this->view->title.= " >>> yes";
    	else
    		$this->view->title.= " >>> no";
    }
    et ca donne l'erreur suivante :
    Warning: opendir(/ImageRandom/public/images_test/) [function.opendir]: failed to open dir: No such file or directory in C:\wamp\www\ImageRandom\application\controllers\IndexControl ler.php on line 92

    voilà !!!

    merci d'avance

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 98
    Points : 93
    Points
    93
    Par défaut
    Citation Envoyé par reeda Voir le message
    salut,

    voila le ptit bout de code que je donne au controleur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function imagesAction(){
    	$this->view->title = "Affichage d'images aléatoirement";
    	$url= $this->view->baseUrl();
    	$url.="/public/images_test/";
     
    	if (is_dir($url))
    		$this->view->title.= " >>> yes";
    	else
    		$this->view->title.= " >>> no";
    }
    et ca donne l'erreur suivante :
    Warning: opendir(/ImageRandom/public/images_test/) [function.opendir]: failed to open dir: No such file or directory in C:\wamp\www\ImageRandom\application\controllers\IndexControl ler.php on line 92

    voilà !!!

    merci d'avance
    reeda,

    Je dois avoué que j'ai jamais programmé sur Windows en PHP.
    Donc, je peux tout à fait me tromper, mais ne faudrait-il pas que tu mettes des '\' à la place des '/' comme séparateur ?

    Sinon, pourrais-tu me dire ce que ça donne si tu fais un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Zend_Debug::dump($url); exit();
    Après l'initialisation de ton url.

    Tiens moi au courant

  9. #9
    Membre habitué Avatar de reeda
    Formateur en informatique
    Inscrit en
    Août 2006
    Messages
    367
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 367
    Points : 150
    Points
    150
    Par défaut
    salut

    j'avais trouver sur google un lien qui explique que opendir & compagnie posaient problème sous Zend + windows et quand je clique pour voir la suite ca donne rien

    Mais bon, voici ce que donne le code que tu m'as donné:
    string(31) "/ImageRandom/public/images_test"

    Merci

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 98
    Points : 93
    Points
    93
    Par défaut
    reeda,

    Dans ton controller, tu as déjà essayer en dur, un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Zend_Debug::dump(C:\wamp\www\ImageRandom\image_test); exit();
    A mon sens baseUrl() sert plus à créer des urls comme son nom l'indique qu'a jouer avec des chemins de fichiers...

    Si tu utilise Zend_Config, il serait peut-être plus facile de définir une valeur ton baseDir dans ton config.ini, genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    randomImage.dir = C:\wamp\www\ImageRandom
    Et de la mettre cette valeur dans ta registry en faisant qqch du genre dans ton bootstrap :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $config = new Zend_Config_Ini(APPLICATION_PATH.'/config/config.ini', 'development');
    Zend_Registry::set('config', $config);
    Pour récupérer la valeur dans ton controller comme suis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ...
    $config = Zend_Registry::get('config');
    $baseDir = $config->randomImage->dir;
    ...
    Vérifie toujours pour les '/' versus les '\' aussi.

    Voilà, j'espère que ca à pu t'aider

    PS: Dans mon appel pour Zend_Config, tu as surement remarque que j'ai passé 'developpement' comme 2eme argument. C'est juste que dans mon fichier de configuration, j'ai une config pour le dev qui hérite de celle de la prod. C'est très pratique. Si tu ne vois pas exactement de quoi je parle, jete un oeil ici : http://framework.zend.com/manual/en/...pters.ini.html

  11. #11
    Membre habitué Avatar de reeda
    Formateur en informatique
    Inscrit en
    Août 2006
    Messages
    367
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 367
    Points : 150
    Points
    150
    Par défaut
    salut oliviercuyp,

    Merci beaucoup pour la solution que tu m'as donné, elle est impect

    Mais j'ai une petite remarque par rapport cela, c'est qu'une URL du genre : c:\wamp\www\... ne peut être utilisée qu'en local (sur un PC) mais une fois sur le serveur il faudrait refaire le fichier de configuration,

    la fonction BaseUrl() retourne la racine de l'application, je l'utilise pour importer un fichier CSS pour mes layouts et ca marche sans problème, et l'url est : /ImageRandom/public/css/site.css

    j'ai donné à la fonction is_dir(), l'url absolue du fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $url="C:\wamp\www\ImageRandom\public\images_test";
    et ça marche

    Mais la question que je me pose maintenant, est ce qu'une url absolue est faisable ?

    merci beaucoup
    Bien cordialement

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 98
    Points : 93
    Points
    93
    Par défaut
    Salut reeda,

    C'est clair que les chemins de dossiers varient en fonction de l'environement où tu te trouves.
    C'est pour ça que je j'utilise Zend_Config qui permet de différencier les 2 environements (dev/prod).
    Voilà comment tu devrais faire dans ton fichier config.ini :

    [production]
    ...
    imagesBaseDir = C:\wamp\www\ImageRandom\public
    ...
    [development: production]
    imagesBaseDir = /home/monsite/www/ImageRandom/public
    Le fait de mettre [development: production] permet à la configuration development d'hériter de toutes les valeurs non-redéfinies de production.
    Ce qui est pratique puisqu'en générale tout ne change pas d'un environement à l'autre.
    Après dans ton bootstrap.php, tu n'auras qu'une chose à changer pour loader la bonne configuration :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $config = new Zend_Config_Ini(APPLICATION_PATH.'/config/config.ini, 'production');

  13. #13
    Membre habitué Avatar de reeda
    Formateur en informatique
    Inscrit en
    Août 2006
    Messages
    367
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 367
    Points : 150
    Points
    150
    Par défaut
    salut oliviercuyp,

    Merci beaucoup, ça marche impeccablement bien maintenant grâce à vous,
    cette conversation m'a permis de connaitre plusieurs nouveaux trucs sur ZEND, car je suis encore débutant avec ce framework,


    Merci encore une fois oliviercuyp

    Bien cordialement

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 98
    Points : 93
    Points
    93
    Par défaut
    Avec plaisir

    Aufait, je pense que tu peux mettre ta discussion sur 'opendir' comme résolue aussi. A moins que ce soit un problème différent...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. acces concurent à des fichiers sur le serveur
    Par al3alwa dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 08/06/2007, 15h41
  2. Authentification et Synchronisation des fichiers sur un serveur
    Par zelig dans le forum Windows Serveur
    Réponses: 3
    Dernier message: 30/05/2007, 15h32
  3. Suppression automatique des fichiers sur le serveur
    Par phpieur dans le forum ASP.NET
    Réponses: 9
    Dernier message: 17/05/2007, 13h19
  4. un conseil pour exporter des fichier sur un serveur ftp
    Par pierrot67 dans le forum Delphi
    Réponses: 1
    Dernier message: 03/12/2006, 11h15
  5. [Strategie] Accéder à des fichiers sur un serveur
    Par elan dans le forum Général Java
    Réponses: 4
    Dernier message: 28/09/2005, 18h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo