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 :

Télécharger un fichier ics et le lire sous ANDROID [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Télécharger un fichier ics et le lire sous ANDROID
    Bonjour à tous,

    je suis confronté à un problème pour la lecture d'un fichier ICS sur mobile Android. Je m'explique, je crée et télécharge un fichier ".ICS" avec ces deux fonctions :

    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
    18
    19
    20
    21
     
    function createEventCalendar($start, $end, $description, $location) {
            $event = array();
            $rand = rand(5, 1000000000);
     
            $event['name'] = "event";
            $event['data'] = "BEGIN:VCALENDAR\nVERSION:2.0\nPRODID:-//blabla//blabla//FR\nBEGIN:VEVENT\nDTSTAMP:".date('Ymd\THis')."\nSTATUS:CONFIRMED\nUID:".$rand."\nDTSTART:".date('Ymd\THis', strtotime($start))."\nDTEND:".date('Ymd\THis', strtotime($end))."\nSUMMARY:Rendez-vous\nDESCRIPTION:Description of the event\nX-ALT-DESC;FMTTYPE=text/html:Description of the event\nLOCATION:".$location."\nEND:VEVENT\nEND:VCALENDAR";
            return $event;
    }
     
    public function downloadEventCalendar($event) {
            $eventname = $event['name'].'.ics';
     
            header("Content-Type: text/x-vCalendar");
            header("Content-Disposition: attachment; filename=\"" . $eventname . "\"");
            //header("Content-Length: ".strlen($event['data']));
             //header('Connection: close');
     
            echo $event['data'];
            exit();
    }
    Pour mon exemple, la date de début est le 01/09 à 12h et la date de fin le 01/09 à 13h. Voici le code générer dans le .ics :

    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
    BEGIN:VCALENDAR
    VERSION:2.0
    PRODID:-//blabla//blabla//FR
    BEGIN:VEVENT
    DTSTAMP:20150804T144342
    STATUS:CONFIRMED
    UID:736541750
    DTSTART:20150901T120000
    DTEND:20150901T130000
    SUMMARY:Rendez-vous
    DESCRIPTION:Description of the event
    X-ALT-DESC;FMTTYPE=text/html:Description of the event
    LOCATION:My calendar
    END:VEVENT
    END:VCALENDAR
    Le fichier ce télécharge bien sur mon téléphone pas de soucis j'ai un fichier qui s’appelle "event.ics", mais lorsque je clique dessus pour l'ajouter à mon calendrier de mon téléphone sur Android, alors celui ci tourne en boucle et n'est jamais ajouté à mon téléphone :

    Nom : Screenshot_2015-08-03-10-08-34.png
Affichages : 684
Taille : 7,9 Ko

    J'ai passé le fichier généré au validator et il me ressort aucune erreur. Cela fonctionne très bien sur IOS et sur mon ordinateur, donc je ne comprend pas du tout...
    J'ai trouvé un site qui fait exactement ce que je veux ICI. J'ai essayé de copier le code généré dans le .ics dans mon code, mais après téléchargement et ayant le même code généré dans le .ics, le mien ne fonctionne pas...

    Est ce que j'ai oublié un paramètre pour Android ?

    Merci

  2. #2
    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 peux nous fournir les deux fichiers ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Oui tu trouveras les deux fichiers ICS sur ce lien ICI. event_from_me.ics c'est celui que je crée moi même. L'autre depuis le site.

    les différences entre ces deux fichiers sont :
    - ORGANIZER;CN=Organizer:MAILTO:Organizer e-mail (Je n'ai pas rajouter cette ligne, car j'en ai pas besoin)
    - le "Z" à la fin des dates de l'autre fichier(décalage des heures, pas besoin la non plus)
    - UID (je pense pas avoir besoin du même ?)

    PS : tu voulais les fichiers PHP aussi ? Car c'est un service symfony2 en fait, dedans j'ai mes deux fonctions et je l'ai appelle ensuite depuis le Controller en arrivant sur une page.

    Merci

  4. #4
    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
    De mon côté les deux fonctionnent avec SCalendar de Samsung.
    Tu as essayé de produire exactement le même que celui qui fonctionne ?

    Un autre différence que je note c'est que tu fais des retours \n alors que celui du site a des retours \r\n
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Oui j'ai déjà essayé de produire exactement le même que celui qui fonctionne, mais rien de plus la aussi...

    EDIT : en copiant exactement le même cela fonctionne maintenant... J'ai ajouté les \r\n du coup. Je vais continuer à tester.

    Je teste avec un Sony Xperia Z3 au cas ou avec Android 5.0.2. Après cela fonctionne apparemment sur certains Android comme tu viens de me le dire, c'est assez étrange, je pensais qu'on avait tous le même calendar.

    Merci

  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
    Il n'y a pas de calendrier Android.
    Chaque constructeur met l'application qu'il veut. Sur les Samsung c'est l'appli maison S Calendar, sur les Nexus c'est Google Calendar.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci à toi j'ai réussi au final pour Android et IOS ! Il fallait bien ajouter les \r\n et pas seulement les \n.
    De plus les header pour télécharger le fichier doivent être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    header("Content-Type: text/Calendar");
    header("Content-Disposition: attachment; filename=\"".$eventname."\"");
    Pour Windows Phone je pense que je vais oublier ^^

    Merci encore !

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/10/2011, 19h30
  2. Lire un fichier partager dans un réseau sous windows
    Par islyoung2 dans le forum Administration système
    Réponses: 1
    Dernier message: 27/12/2009, 10h51
  3. Réponses: 9
    Dernier message: 09/12/2005, 14h39
  4. Lire un fichier txt par http (C sous Linux)
    Par sleg dans le forum Réseau
    Réponses: 4
    Dernier message: 18/10/2005, 12h07
  5. Réponses: 2
    Dernier message: 26/04/2004, 14h55

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