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

Web Perl Discussion :

Récupérer une pièce jointe XLS


Sujet :

Web Perl

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Récupérer une pièce jointe XLS
    Bonjour,

    je travaille sur un système Linux. J'ai une appli développé en perl qui récupère des mails et traite leur contenu.
    Et je dois aussi gérer les piéces joints qui peuvent être des fichiers .dat ou .xls.
    Je n'ai pas de pb avec les .dat, je peux récupérer facilement le contenu. Par contre avec les .xls c'est un peu plus compliqué. Le contenu reste toujours encodé.

    Code développé:

    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
    my $parser = MIME::Parser->new;
        $parser->output_to_core('ALL');
     
    	my $MIME_entity = $parser->parse_data($text);
    	my $ascii1;
     
       	foreach my $elt_entity ($MIME_entity->parts_DFS) {
     
    		if ($elt_entity->mime_type() eq "application/octet-stream") {	
    			$ascii1 = $elt_entity->body_as_string();
    			$ascii = MIME::Base64::decode($ascii1);
    		}
     
    		if ($elt_entity->mime_type() eq "application/vnd.ms-excel") {
    			$ascii = $elt_entity->body_as_string();
    		}
    	}
    Est-ce que quelqu'un aurait deja fait ce genre de travail ?
    Il faut peut-etre récupérer le fichier xls et le mettre dans un répertoire temporaire et ensuite travailler son contenu, plutot que chercher à récupérer directement son contenu ?
    Merci

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Ton fichier xls doit etre traité à part via un module adéquat Spreadsheet-ParseExcel

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    oui mais pour utiliser ce module, il me faut le fichier xls .
    Comment je fais pour le créer et le mettre dans un répertoire ??

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    bon apres avoir cherché, j'ai codé ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if ($elt_entity->mime_type() eq "application/vnd.ms-excel") {
    	$ascii = $elt_entity->body_as_string();
    	$ascii = MIME::Base64::decode($ascii);
    	my $body1 = new MIME::Body::File "/tmp/test.xls";
    	my $IO = $body1->open("w")      || die "open body: $!";
    	$IO->print($ascii);
    	$IO->close                  || die "close I/O handle: $!";
    }
    donc ca me crée mon fichier test.xls, mais le contenu n'est pas bon, il semble toujours encodé qd j'ouvre le xls.
    Y aurait-il une manip particulière pour avoir un contenu décodé.
    Ou faut-il le décoder avec Spreadsheet:arseExcel ??

    Merci de m'aider si quelqu'un a des idées ...

  5. #5
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Veuillez mettre vos codes sources sous balise code, merci!

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    ah bon et comme ca tu penses que j'aurais le contenu de mon fichier xls décodé ...
    je vais voir ca alors ...
    merci

  7. #7
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Mettre l code sous balise code permet que le code soit plus lisible sur le forum.
    En ce qui concerne votre problème, je n'ai jamais utilisé le module MIME::Parser, mais il doit y avoir une méthode qui permette de mettre le fichier joint dans un répertoire quelconque.
    Et ensuite, vous n'aurez plus qu'à lire et parser ce fichier via le module cité plus haut.

Discussions similaires

  1. Récupérer l'url d'une piéce jointe
    Par ktorvik dans le forum Développement Sharepoint
    Réponses: 2
    Dernier message: 11/08/2011, 14h05
  2. [Perl] Récupérer une pièce jointe outlook
    Par cyberps2 dans le forum Langage
    Réponses: 2
    Dernier message: 05/07/2009, 15h34
  3. Récupérer une pièce jointe avec Lotus Notes
    Par Marty000 dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 19/11/2007, 14h31
  4. [Mail] Récupérer une pièce jointe d'un mail
    Par heddicmi dans le forum Langage
    Réponses: 2
    Dernier message: 22/12/2005, 16h21
  5. [Indy] Récupérer une pièce jointe
    Par ced00 dans le forum Web & réseau
    Réponses: 2
    Dernier message: 21/10/2005, 12h11

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