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 :

Fichier à la volée avec clic de téléchargement


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 302
    Par défaut Fichier à la volée avec clic de téléchargement
    Bonjour à tous,

    J'ai un petit soucis. Je souhaiterais créer un fichier à la volée lorsque l'utilisateur clique sur un lien.

    J'arrive à créer le fichier à la volée avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    		header("Content-Type: text/Calendar");
    		header("Content-Disposition: inline; filename=$my_title.ics");
     
    		echo "BEGIN:VCALENDAR\n";
    		echo "PRODID:-//Microsoft Corporation//Outlook 12.0 MIMEDIR//EN\n";
    		echo "VERSION:2.0\n";
    		echo "BEGIN:VEVENT\n";
    		echo "DESCRIPTION:$my_title";
    		echo "DTEND:20120910T'.$horaire_fin.'00Z\n";
    		echo "DTSTART:20120910T'.$horaire_debut.'00Z\n";
    		echo "LOCATION:Paris\n";
    		echo "SUMMARY;LANGUAGE=en-us:ADAM-Houston Event\n";
    		echo "END:VEVENT\n";
    		echo "END:VCALENDAR\n";
    mais il se télécharge dès le chargement de la page.

    Merci d'avance

  2. #2
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    hum
    t'as pas tout compris.

    d'abord le http ne permet pas de faire nativement ce que tu veux. 1 URL= 1 document = 1 téléchargement. Or le fichier html qui affiche la page compte pour 1 téléchargement.

    bon maintenant que c'est dit, ce que tu peux faire c'est une page web normale, avec des liens vers des documents à a télécharger qui seront généré à la volé lors de l'activation du script "derriere" le lien de téléchargement ou prégénéré oubien ...

    ce que tu veux certainement c'est avoir la page qui rassemble tes liens et le fait de télécharger un document ne fait pas perdre la page "maitre". C'est bcp facile qu'il n'y parait.

    le navigateur utilise Content-Disposition: inline; (par défaut sur la plus part des mimes) pour dire qu'il faut traiter les fichiers à l'interieur du navigateur (donc le nouveau document remplace l'ancien). Si tu lui dis "content-disposition: attachment" (à vérifier) alors le navigateur vas traiter le fichier à l'extérieur... c'est à dire proposer de sauvegarder le fichier sans remplacer le document affiché.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 302
    Par défaut
    Je vous remercie.

    Je pense créer un fichier php avec le code de la génération seule et créer des liens basiques avec comme href ma page php.

    Kevin

  4. #4
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    yep page maitre/index/basique.
    mais si tu veux que ça te propose de télécharger au lieu de remplacer la page basique c'est content-disposition:attachment

  5. #5
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Par défaut
    Citation Envoyé par gene69 Voir le message
    yep page maitre/index/basique.
    mais si tu veux que ça te propose de télécharger au lieu de remplacer la page basique c'est content-disposition:attachment
    Tout a fait.

    Voici un petit exemple:
    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
    /*-----------------------------------------------------------------------------------------------*/
    /*-------------------------------Telechargement de l'image demandé-------------------------------*/
    /*-----------------------------------------------------------------------------------------------*/
    $fullPath = "../container_uplad/copyrighted/$fullPath";
    header( 'Pragma: no-cache' );
    header( 'Cache-Control: no-cache, must-revalidate' );
    header( 'Expires: 0' );
    header( 'Content-Transfer-Encoding: binary' );
    header( 'Content-Length: ' . filesize( $fullPath ) );
    header( 'Content-Type: application/octetstream; name="' . basename($fullPath) . '"' );
    header( 'Content-Disposition: attachment; filename="' .  basename($fullPath) . '"' );
    readfile($fullPath);
    unlink ($fullPath);
    //exit();
    /*-----------------------------------------------------------------------------------------------*/
    /*------------------------------/Telechargement de l'image demandé-------------------------------*/
    /*-----------------------------------------------------------------------------------------------*/

  6. #6
    Membre éprouvé
    Avatar de clavier12AZQSWX
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2009
    Messages
    1 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 506
    Par défaut
    bonjour,

    je sais que ça remonte à longtemps, mais avez-vous résolu votre souci ? d'après votre exemple, vous vouliez générer un fichier à la volée contenant un calendrier (ical ou ics je présume)....


    j’essaie de faire pareil mais sans php pour obtenir le fichier, juste le navigateur client qui ferait le boulot.

    étape 1 pour cela, je m'arrange à ce que la page web ait les infos nécessaires (visibles ou pas à l'écran c'est pas grave du moment que c'est en HTML) permettant de remplir le fichier ics (en gros les dates, horaires, lieu, description, titre..etc des évênements)
    étape 2 puis je collecte et assemble ces infos dans une énorme chaine de caractères JS
    étape 3 puis je fournis cette chaine (encodée) dans un lien http
    après c'est le navigateur qui gère la suite (soit il télécharge, soit il ouvre le ics/ical dans l'appli réglée par l'utilisateur)

Discussions similaires

  1. Problème avec WebPart de téléchargement de fichier
    Par papouuu dans le forum Développement Sharepoint
    Réponses: 1
    Dernier message: 16/05/2012, 11h08
  2. Pb téléchargement d'un fichier en Java avec IE7
    Par air75 dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 07/12/2010, 11h25
  3. Création et téléchargement de fichier à la volée
    Par RamyBoulet dans le forum Langage
    Réponses: 3
    Dernier message: 06/10/2009, 13h31
  4. Réponses: 6
    Dernier message: 28/08/2009, 16h38
  5. Réponses: 19
    Dernier message: 24/05/2002, 17h36

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