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

Conception Web Discussion :

Forcer le téléchargement d'un dossier et de son contenu


Sujet :

Conception Web

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 125
    Points : 45
    Points
    45
    Par défaut Forcer le téléchargement d'un dossier et de son contenu
    Bonjour,

    J'ai mis en place une page qui affiche le contenu d'un répertoire spécifique.
    Les fichiers sont téléchargeables sans problèmes mais ce répertoire contient des dossiers que je voudrait forcer au téléchargement (avec ce qu'il contiennent) au lieu de m'afficher une page montrant l'arborescence tel que ci-dessous :
    Nom : default.png
Affichages : 1331
Taille : 17,1 Ko

    Comment faire (si c'est possible) ?

    Merci !

  2. #2
    Expert confirmé Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 529
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 529
    Points : 4 740
    Points
    4 740
    Par défaut
    C'est de l'ordre de l'écriture d'un file Manager.
    Il existe différents projets de ce genre, comme celui-ci : => https://github.com/prasathmani/tinyfilemanager
    «La pluralité des voix n'est pas une preuve, pour les vérités malaisées à découvrir, tant il est bien plus vraisemblable qu'un homme seul les ait rencontrées que tout un peuple.» [ René Descartes ] - Discours de la méthode

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 125
    Points : 45
    Points
    45
    Par défaut
    Merci de prendre le temps de me répondre.

    Votre lien pointe vers un système qui ne gère pas non plus le téléchargement des dossiers.Mais c'est peut être ma faute, j'ai sans doute mal expliqué.

    Ce que j'ai c'est un script php qui lit le contenu d'un répertoire et l'affiche sous la forme d'une liste en respectant la hiérarchie des documents.
    Concrètement dans ce répertoire vont se trouver plusieurs dossiers et fichiers. Ce que je souhaite c'est qu'il soit permis de télécharger un dossier avec l'ensemble des fichiers/sous-dossiers qu'il contient lorsqu'on clic sur son lien.

    En bref si cette ligne permet bien de télécharger le fichier pointé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="répertoire_lu/dossier_dupont/rapport.rar">Télécharger rapport.rar</a>
    Cette autre ligne ne permet pas de télécharger le dossier pointé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="répertoire_lu/dossier_dupont">Télécharger dossier dupont</a>
    Mes question sont donc les suivantes :
    1) est-il possible de forcer le téléchargement d'un dossier ?
    2) Comment ? Faisable en PHP, balisage html particulier, où faut il s'orienter vers autre chose ?

    En espérant avoir été précis dans ma demande.
    Merci.

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Hello,

    non, le web ne propose pas de notion de "télécharger un dossier", avec ou sans fichier dedans. On ne télécharge qu'un fichier, unique. À la rigueur, il est possible de faire télécharger un fichier, et un autre, et encore un autre... Mais ce n'est pas franchement pratique, et il ne seront pas organisés dans un dossier, ce seront juste plusieurs fichiers qui ont été chacun téléchargé.

    Il n'y a pas de protocole pour faire ça, et les différents systèmes d'extension de navigateur ne le permettent pas non plus (il faudrait autoriser l'extension à modifier les fichiers de l'ordinateur, et ça n'est pas autorisé.)

    Donc, pas moyen. Le mieux que tu puisses faire, c'est de zipper le dossier et son contenu, et de proposer ça en téléchargement. En théorie rien n'empêche de le faire à la volée en JavaScript, donc c'est une solution assez réaliste, mais je ne connais rien qui propose ça.

    Autre solution, tu fais ton propre navigateur, et tu conçois un protocole web pour télécharger les dossiers, et tu implémentes ce protocole dans ton navigateur, et dans ton site web. Il est toujours possible de prendre un navigateur libre comme Firefox et de le modifier.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 125
    Points : 45
    Points
    45
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Donc, pas moyen. Le mieux que tu puisses faire, c'est de zipper le dossier et son contenu, et de proposer ça en téléchargement. En théorie rien n'empêche de le faire à la volée en JavaScript, donc c'est une solution assez réaliste, mais je ne connais rien qui propose ça.
    .
    Mais oui !!!! Pourquoi j'y ai pas pensé plus tôt, merci
    C'est exactement ce qu'il faut que je fasse !

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Encore que je ne sais pas trop ce que tu vas pouvoir faire à la volée en javascript. C'est le langage serveur qui peut accéder au système de fichiers du serveur donc dans ton cas php qui pourrait être utilisé pour faire le zip à la volée et proposer le téléchargement du fichier. Aussi je n'ai pas trop compris l'expression "le faire à la volée en javascript" mais bon j'ai peut-être manqué quelque chose...

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par ABCIWEB Voir le message
    Encore que je ne sais pas trop ce que tu vas pouvoir faire à la volée en javascript. C'est le langage serveur qui peut accéder au système de fichiers du serveur donc dans ton cas php qui pourrait être utilisé pour faire le zip à la volée et proposer le téléchargement du fichier. Aussi je n'ai pas trop compris l'expression "le faire à la volée en javascript" mais bon j'ai peut-être manqué quelque chose...
    Si seul le serveur peut accéder à ces fichiers, alors comment est-il possible que des gens aient téléchargé ces fichiers sur leur propre ordinateur ?

    Un script JavaScript peut juste télécharger les fichiers exactement de la même manière qu'un navigateur le ferait normalement. Et il peut aussi demander la liste des fichiers contenus dans un dossier, de la même manière qu'on peut afficher une page qui contient cette liste.

    Après, c'est peut-être beaucoup de boulot pour pas grand-chose. Faire le fichier zip côté serveur sera passablement plus simple. Et aussi une charge pour le serveur.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Oui tu as raison, je pensais à l'upload de fichiers pour l'accès au système de fichiers.

    Mais cela ne me viendrait pas spontanément à l'idée de faire un zip en javascript pour ce genre de besoin:
    - Il n'y a apparemment pas de fonction native en javascript et si j'ai bien compris il faut utiliser la lib jszip qui fait quand même 100Ko minifiée. C'est pas la fin du monde, ni déterminant mais quand même ça que les clients devront charger pour ce besoin spécifique.
    - Mais surtout, la compression de fichiers est un process relativement lourd, aussi pour ne pas défavoriser les clients "entrée de gamme" il est plus judicieux de faire le zip côté serveur.
    - Par ailleurs, en faisant le Zip côté serveur la fluidité sera toujours meilleure quelque soit le client. Le zip proposé par le serveur aura déjà une taille réduite au minimum donc le téléchargement sera plus rapide. Bien plus rapide que de télécharger chacun des fichiers non compressé en javascript pour au final leur appliquer un traitement supplémentaire à réception.

    Au total, meilleur service client, meilleur rendement énergétique et plus simple à mettre en place sans besoin de charger une lib côté client, la solution serveur me semble un choix plus naturel. Enfin bon c'était juste pour parler.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 05/12/2012, 17h44
  2. Réponses: 4
    Dernier message: 13/06/2007, 15h27
  3. [PHP-JS] Forcer le téléchargement d'une image JPG
    Par Amnesiak dans le forum Langage
    Réponses: 5
    Dernier message: 09/11/2006, 23h50
  4. Réponses: 1
    Dernier message: 08/09/2005, 11h01
  5. Réponses: 2
    Dernier message: 23/03/2005, 08h51

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