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

Langage PHP Discussion :

déplacement de fichiers


Sujet :

Langage PHP

  1. #1
    Invité
    Invité(e)
    Par défaut déplacement de fichiers
    Bonjour à tous,

    Je suis en stage en ce moment et ils m'ont demandé de faire un filemanager pour leur serveur ftp. Mon soucis c'est que je ne sais pas comment faire pour pouvoir déplacer les fichiers et les dossiers en demandant à l'utilisateur où il veut les déplacer.

    Merci pour votre aide !!

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    pour déplacer un fichier, utilise rename($old_file_path, $new_file_path)http://php.net/manual/en/function.rename.php

    Pour demander à l'utilisateur ou déplacer les fichiers, utilise un formulaire tout simple. N'oublie pas de vérifier les droits de ce que tu déplace et où tu le déplace et vérifie systématiquement les valeurs de retour des fonctions que tu utilise.

  3. #3
    Invité
    Invité(e)
    Par défaut
    le soucis c'est que je ne sais pas comment faire le formulaire pour qu'il propose le déplacement dans les dossiers locaux ou du ftp ?

  4. #4
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Alors il faudrait peut être revoir les bases.

  5. #5
    Invité
    Invité(e)
    Par défaut
    non mais je sais faire un formulaire mais ce que je ne sais pas faire c'est afficher une fenêtre avec tous les dossiers (comme le bouton parcourir), laisser l'utilisateur sélectionner un dossier (donc de préférence n'afficher que les dossiers) et ne récupérer que le chemin du dossier afin de déplacer le fichier dedans

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Un peu de recherche de ta part est nécessaire

    http://antoine-herault.developpez.co.../gestionnaire/
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Invité
    Invité(e)
    Par défaut
    je l'ai vu ce tuto mais la liste des dossiers est déjà faite

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu mets ta liste dans un formulaire avec un bouton radio dans chaque dossier et voila.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Tu vas de toute façon devoir faire cette fenêtre à la main.

    Mon conseil: utilise les classes SplFileObject, SplFileInfo, DirectoryIterator, RecursiveTreeIterator etc. c'est plus simple.

    Sinon, tu peux aussi bien te servir des fonctions classiques: dir, basename, dirname, is_file, is_dir etc.

    Exemple afficher le contenu d'un dossier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    function display_dir_struct ($dir) {
        if (!$dir instanceof DirectoryIterator) {
            try { $dir = new DirectoryIterator($dir); }
            catch (Exception $e) { return false; }
        }
     
        $res = '<ul>';
        foreach ($dir as $item) {
            if ($item->isDot() || $item->isFile() || strpos($name = $item->getBasename(), '.') === 0) continue;
            $res   .= '<li data-type="folder"><span data-path="'.str_replace('\\', '/', $item->getPathname()).'"><i class="icon icon-folder-close"></i> '.$name.'</span>'.display_dir_struct($item->getPathname()).'</li>';
        }
        foreach ($dir as $item) {
            if ($item->isDot() || $item->isDir() || (strpos($name = $item->getBasename(), '.') === 0 && $name !== '.htaccess')) continue;
            $res .= '<li data-type="file"><span data-path="'.str_replace('\\', '/', $item->getPathname()).'"><i class="icon icon-file"></i> '.$name.'</span></li>';
        }
        return $res . '</ul>';
    }
    Ce code avait été prévu pour fonctionner avec du JS qui déplie et replie les dossier et avec les styles de Twitter Bootstrap.

    Voici les 3 lignes de CSS qui vont dessus (il faut ajouter bootstrap.css):
    Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        .tree-struct > ul { border-right: 1px solid #efefef; }
        .tree-struct ul { list-style-type: none; }
        .tree-struct ul li > span { cursor: pointer; }
        .tree-struct ul li.folded > ul { display: none; }

    Voici le JS qui anime tout ça:
    Code JS : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            $('.tree-struct li[data-type=folder]').addClass('folded').click(function (event) {
                event.stopPropagation();
                $(this).toggleClass('folded').find('> span i').toggleClass('icon-folder-open icon-folder-close');
            });
            $('.tree-struct li[data-type=file]').click(function (event) {
                event.stopPropagation();
                // implémenter ici la sélection du fichier
            });

  10. #10
    Invité
    Invité(e)
    Par défaut
    merci pour votre aide

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

Discussions similaires

  1. Problème de déplacement de fichier sur le Disque Dur
    Par DeFCrew dans le forum Sécurité
    Réponses: 8
    Dernier message: 11/09/2006, 11h44
  2. [Configuration] Déplacement de fichier d'un domaine vers un sous-domaine
    Par Christophe Charron dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 22/06/2006, 15h35
  3. Réponses: 4
    Dernier message: 18/05/2006, 15h00
  4. Déplacement de fichiers
    Par sourivore dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 03/05/2006, 11h48
  5. Réponses: 16
    Dernier message: 25/11/2004, 12h34

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