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 :

Encodage de pieces-jointes


Sujet :

Langage PHP

  1. #1
    Membre du Club Avatar de pymouse
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 137
    Points : 67
    Points
    67
    Par défaut Encodage de pieces-jointes
    Bonjour,

    Je pense avoir un problème au niveau du réencodage de mes pieces-jointes. Car j'arrive a faire un lien pour la télécharger, j'ai bien une pop-up voulez vous : ouvri enregistrer ... avec le nom de la piece-jointe ainsi que son extention jpeg,text...etc mais une fois téléchargée je n'est aucuns apercu (pour une image.jpeg)...Mon image.jpeg n'est pas vide, je l'ouvre avec bloc note et j'ai tout plein de caractère, ce qui me semble tout a fait normal. Voici le bout de mon code :

    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
    22
    23
    24
    25
    26
    27
    28
     
    $mbox = open_mailbox($mail_pop_server, $mail_login, $mail_pass); 
    $structure = imap_fetchstructure($mbox,$msgid); 
     
    # piece jointe #
    $return_content = imap_fetchbody($mbox,$msgid, $partnumber+1);
    $anencode = $structure->parts[$partnumber]->encoding;
     
    $atype = $structure->parts[$partnumber]->type;
    if($atype == "") $atype = 0; // Text
    $asubtype = $structure->parts[$partnumber]->subtype;
    if($asubtype == "") $asubtype = 'PLAIN';
     
    $attach_type = $mimetype[$atype]."/".$asubtype;
     
    if($anencode == 1) $return_content = imap_8bit($return_content);
    if($anencode == 2) $return_content = imap_binary($return_content);
    if($anencode == 3) $return_content = imap_base64($return_content);
    if($anencode == 4) $return_content = imap_qprint($return_content);
     
    $nom_fichier = $structure->parts[$partnumber]->parameters[0]->value;
     
    close_mailbox($mbox);
     
    header("Content-type: $attach_type");
    header("Content-Disposition: attachment; filename = $nom_fichier" );
     
    echo $return_content;
    Voila j'espere que quelq'un a une idée...

    Pymouse

  2. #2
    Membre éclairé Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Points : 799
    Points
    799
    Par défaut
    salut,
    t'as essayé de faire un echo($attach_type), histoire de vérifier quel type mime est envoyé dans l'entête ?

  3. #3
    Membre du Club Avatar de pymouse
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 137
    Points : 67
    Points
    67
    Par défaut
    pour une image j'ai : image/JPEG

  4. #4
    Membre du Club Avatar de pymouse
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 137
    Points : 67
    Points
    67
    Par défaut
    Je n'arrive tjr pas a récuper mon image...Pour vérifier mon encodage, j'ai fait un test, qui consiste tout simplement à créer l'image.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $db_link_pj = $rep."/".$nom_fichier;
    $newfichier = fopen($db_link_pj,"w+");
    # Ecriture dans le fichier #
    fwrite($newfichier,$return_content);
    # Fermeture du fichier #
    fclose($newfichier);
    Et cela fonctionne trés bien...Mais je ne veut pas enregistrer l'image en dur, mais la télécharger directement...
    Donc ce n'est pas un probleme d'encodage finalement, peut etre un problème au niveau du header ?

    Je vien d'analyser plus en détail ce qui été retourné :

    quand je créer le fichier et que je l'ouvre avec un bloc note j'obtien :

    ÿØÿà JFIF    ÿþ K

    CREATOR: XV Version 3.10a Rev: 12/29/94 Quality = 85, Smoothing = 20
    ÿÛ C   !"$"$ÿÛ CÿÀ ST" ÿÄ   
    ÿÄ µ  } !1AQa"q2‘¡#B±ÁRÑð$3br‚
    %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖ×ØÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ   
    ÿÄ µ  w !1AQaq"2B‘¡±Á #3RðbrÑ
    $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖ×ØÙÚâãäåæçèéêòóôõö÷øùúÿÚ   ? úšÙûgµYëY–òp*ò8#*qFGl‘!ëŠaÿ.............
    Par contre quand j'ouvre le fichier téléchargé via le header, j'ai :




    ÿØÿà JFIF    ÿþ K

    CREATOR: XV Version 3.10a Rev: 12/29/94 Quality = 85, Smoothing = 20
    ÿÛ C   !"$"$ÿÛ CÿÀ ST" ÿÄ   
    ÿÄ µ  } !1AQa"q2‘¡#B±ÁRÑð$3br‚
    %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖ×ØÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ   
    ÿÄ µ  w !1AQaq"2B‘¡±Á #3RðbrÑ
    $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖ×ØÙÚâãäåæçèéêòóôõö÷øùúÿÚ   ? úšÙûgµYëY–òp*ò8#*qFGl‘!ëŠaÿ.............
    Le code est exactement le meme, la seule différence c'est les 3 "\n" dans l'image télécharger. Et donc impossiblité d'avoir un rendu...
    J'ai fait de meme pour un fichier .txt, j'ai bien 3 "\n" en début de fichier, mais bcp moin genant que pour une image.Cela vien donc du $return_content? mais ca me semble impossible puisque dans les deux cas(création et téléchargemnt) j'utilise le meme $return_content. Voila si quelqu'un savais pourquoi es-ce que lorsque je passe par le header cela rajoute des sauts de lignes au début du fichier?

Discussions similaires

  1. [AC-2010] Encodage base 64 pieces jointes
    Par vittirivizzik dans le forum Access
    Réponses: 1
    Dernier message: 25/02/2013, 16h04
  2. [C#] Mail piece jointe
    Par alexischmit dans le forum ASP.NET
    Réponses: 11
    Dernier message: 04/07/2005, 16h08
  3. [VB6] attacher un pièce jointe à un email via VB
    Par bytedigger dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 16/07/2004, 09h35
  4. piece jointe à mettre dans outlook
    Par Tierisa dans le forum VBA Access
    Réponses: 52
    Dernier message: 21/10/2003, 15h32
  5. Indy - email, html et piece jointe
    Par nut62 dans le forum Web & réseau
    Réponses: 3
    Dernier message: 13/12/2002, 10h25

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