Page 1 sur 1

Pièce jointe et pdf

Posté : 18 déc. 2007, 15:58
par Thegritch
Bonjour,

Mon programme créer un fichier pdf à partir de valeurs PHP (merci à FPDF :D )
Et en faite je voudrais envoyer en pièce jointe mon fichier PDF.
L'envoie se déroule sans erreur, et la pièce jointe par contre ne fait ni la taille réelle (428ko contre 14 500ko pour le bon fichier) Et quand je tente de l'ouvrir j'ai Acrobat qui crie :
Acrobat reader n'a pas pu ouvrir le fichier toto.pdf
car le fichier n'est pas pris en charge ou le fichier est endommagé.
Voici mon code php qui me permet l'envoie de la pièce jointe :

$to = "[email protected]";
$subject = "salut";
$msg = "coucou";

$_path_name_file = "/home/directory/demande.pdf";
if(file_exists($_path_name_file)){
$_delimiteur = md5(uniqid(mt_rand()));
$_head = "MIME-Version: 1.0\n";
$_head .= "From: moi \n";
$_head .= "Content-Type:multipart/mixed; boundary=\"$_delimiteur\"\n";
$_head .= "\n";
$msg .= "\n";
$msg .= "--$_delimiteur\n";
$_attache = file_get_contents($_path_name_file);
$_attache = chunk_split(base64_encode ($_attache));
$msg .= "--$_delimiteur\n";
$msg .= "Content-type: application/pdf; name=\"$_path_name_file\"\n";
$msg .= "Content-Transfert-Encoding: base64\n";
$msg .= $_attache . "\n";
$msg .= "\n";
$msg .= "--$_delimiteur--\n";
mail($to, $subject, $msg, $_head);
}
Je ne vois pas d'ou cela provient ... :roll: Si vous avez des idées , des infos , des url's je suis preneur !!

@+ Gritch

Posté : 18 déc. 2007, 19:15
par Sékiltoyai
Tes délimiteurs ne sont pas les mêmes. Tu as déclaré "$délimiteur" et tu utilises "--$délimiteur" et "--$délimiteur"

Posté : 19 déc. 2007, 14:32
par Thegritch
yop me revoila après quelques tests sur les délimiteurs...
A priori si j'enlève les "--" là je n'ai plus de pièce jointe du tout...

J'ai donc toujours le problème mais je continu à chercher ...

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

===================================
J'ai trouvé deux erreurs se sont glissées dans mon code :
$_delimiteur = md5(uniqid(mt_rand()));
$_head = "MIME-Version: 1.0\n";
$_head .= "From: WWW \n";
$_head .= "Content-Type:multipart/mixed; boundary=\"$_delimiteur\" \n ";
$_head .= " \n";
$msg .= "--$_delimiteur\n";
$msg .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$msg .= "Content-Transfer-Encoding: 8bit\n";
$msg .= "\n";
$msg .= "corps\n";
$msg .= "\n";
$_attache = file_get_contents($_path_name_file);
$_attache = chunk_split(base64_encode($_attache));
$msg .= "--$_delimiteur\n";
$msg .= "Content-type: application/pdf; name=\"$_path_name_file\"\n";
$msg .= "Content-Transfer-Encoding: base64\n";
$msg .=  "Content-Disposition: inline; filename=\"$_path_name_file\"\n";
$msg .= "\n";
$msg .= $_attache . "\n";
$msg .= "\n";
$msg .= "--$_delimiteur--";
mail($to, $subject, $msg, $_head);
là tout fonctionne ... :P :P :P :P :P