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 :

Nom par défaut pour le téléchargement de fichier


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Nom par défaut pour le téléchargement de fichier
    Bonjour,

    Voici en deux mots la situation:
    Je développe actuellement un intranet dans lequel nous mettons à disposition de l'utilisateur, des documents PDF.
    l'arborescence est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
       |
       |_ Dev
       |_ Prod
       |_ Dossier PDF
    Les url de développement et de production pointent respectivement sur les dossier Dev et Prod.
    Le dossier contenant les PDF n'étant donc pas sous la racine, je ne peux faire de lien directe.
    Le but premier est de permettre la visualisation des PDF, et au besoin de les télécharger.

    Pour la visualisation, aucun soucis. J'utilise la fonction PHP 'readfile()', avec un header(' Content-type: application/pdf').
    Mon problème vient lorsque l'on veut télécharger le fichier.
    Le nom qui est par défaut, est l'url de la page PHP qui ouvre le fichier. C'est un peu logique en soi, mais il serait mieux que ce soit le nom du fichier qui s'y retrouve.
    Seulement, je ne trouve pas comment lui passer cette information. Je n'ai pas trouvé de header qui corresponde à ça, ni d'autre fonction PHP qui ferait ceci.

    Le seul header permettant de nommer le fichier, que j'ai trouvé est
    'Content-Disposition: attachement; filename= ...'
    Mais il force le téléchargement, ce qui ne me convient pas.

    Je solicite donc votre connaissance sans doute plus avancée que la mienne pour ceci

    Merci d'avance

    L'intranet tourne sur un serveur Linux, avec PHP 5.2 et est développé avec le Framework de Zend.

  2. #2
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 201
    Points : 241
    Points
    241
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    header('Content-type: application/pdf');
    // le fichier sera nommé downloaded.pdf
    header('Content-Disposition: attachment; filename="downloaded.pdf"');
    // Le source du PDF original.pdf
    readfile('original.pdf');
    ?>

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Xilhion Voir le message
    Le seul header permettant de nommer le fichier, que j'ai trouvé est
    'Content-Disposition: attachement; filename= ...'
    Mais il force le téléchargement, ce qui ne me convient pas.
    Je ne souhaite pas que le téléchargement soit imposé
    L'utilisation première est la visualisation des PDF.
    Mais si l'url se retrouve comme nom par défaut lors du téléchargement, ce n'est pas très 'user friendly' ...

    Pas moyen de trouver un header qui a cette fonction sans forcer le téléchargement.

    Je sèche un peu là... :/

  4. #4
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 201
    Points : 241
    Points
    241
    Par défaut
    Tu peux toujours faire un lien ver le fichier à télécharger. tu mettras tout simplement le trajet absolu..........

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par acirfa Voir le message
    Tu peux toujours faire un lien ver le fichier à télécharger. tu mettra tout simplement le trajet absolu..........
    J'ai pas vraiment saisi ce que tu propose
    Sachant que je ne peux pas faire de lien HTML, puisque les fichiers ne sont pas sous la racine.

  6. #6
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 201
    Points : 241
    Points
    241
    Par défaut
    Ils sont ou tes fichiers? il ya un chemin pour y acceder non?sinon tu les copies dans un repertoire sur le serveur en utilisant copy() ou rename().

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par acirfa
    Ils sont ou tes fichiers?
    Citation Envoyé par Xilhion Voir le message
    l'arborescence est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
       |
       |_ Dev    (scripts PHP en cours de développement)
       |_ Prod   (scripts PHP mis en production, utilisés)
       |_ Dossier PDF  (Documents PDF)
    Les url de développement et de production pointent respectivement sur les dossier Dev et Prod.
    Citation Envoyé par acirfa
    il ya un chemin pour y acceder non?
    Pour y accéder, il faut remonter d'un dossier ('../') puisqu'ils sont au dessus de la racine.
    Donc, c'est accessible par un chemin en PHP, mais pas en HTML/Javascript.

    Un copy(), suivi d'un redirect pourrait être une solution, mais alors je ne vois pas trop comment gérer la suppression automatique. Si tu avais un éclaircissement sur ce point ça serait pas mal

    (Mon code PHP, au cas où il est nécessaire de le préciser : )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $file = $_GET['file'];
    $file = '../Doc Pdf'.$file;
    $filename = ereg_replace('.*/','',$file);
    header('Content-type: application/pdf');
    header('Content-Disposition:inline; filename="'.$filename.'" size='.filesize($file));
    header('Pragma: no-cache');
    readfile($file);

Discussions similaires

  1. "Nom du fichier" par défaut pour OpenFileDialog
    Par Axiome dans le forum Windows Forms
    Réponses: 4
    Dernier message: 12/11/2008, 14h10
  2. Réponses: 1
    Dernier message: 13/07/2007, 14h20
  3. Chemin par défaut pour download de fichier
    Par Poussy-Puce dans le forum ASP
    Réponses: 2
    Dernier message: 19/09/2006, 22h23
  4. Changer le nom par défaut du fichier excel crée
    Par pilou0013 dans le forum Access
    Réponses: 2
    Dernier message: 18/06/2006, 18h30
  5. [JFileChooser] nom par défaut du fichier ?
    Par niko8181 dans le forum Agents de placement/Fenêtres
    Réponses: 8
    Dernier message: 17/06/2005, 11h37

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