Souci fichier corrompu
Résolu
zorroestarrivé
Messages postés
1849
Date d'inscription
Statut
Membre
Dernière intervention
-
zorroestarrivé Messages postés 1849 Date d'inscription Statut Membre Dernière intervention -
zorroestarrivé Messages postés 1849 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je rencontre le souci suivant:
En javascript et en local, je génère (via jsPDF) un PDF sous forme de string base 64.
Je l'envoie ensuite sur le serveur comme suit:
Du côté PHP (j'utilise PHP mailer), je récupère le pdf (doc) de la façon suivante pour l'envoyer en PJ à un mail:
Je reçois bien le mail et sa PJ mais celle-ci n'est pas exploitable (corrompue) alors que sa taille semble correcte.
Je commence à m'arracher les cheveux !
Merci
Je rencontre le souci suivant:
En javascript et en local, je génère (via jsPDF) un PDF sous forme de string base 64.
Je l'envoie ensuite sur le serveur comme suit:
var doc=pdf.output('datauristring');
// Send the request
$.post('http://www.mon-site.fr/0.php', {
name: 'Moi',
email: 'monadresse@sfr.fr',
pdf: doc
}, function(d) {
console.log(d);
});
Du côté PHP (j'utilise PHP mailer), je récupère le pdf (doc) de la façon suivante pour l'envoyer en PJ à un mail:
[...]
//Send HTML or Plain Text email
$mail->isHTML(true);
$mail->Subject = "Estimation xxxxx";
$mail->Body = "<p>Bonjour<br>Veuillez trouver ci-joint votre <b>estimation</b><br>Cordialement</p>";
$mail->AltBody = "This is the plain text version of the email content";
// Pièce jointe
$mail->AddStringAttachment($_POST['pdf'],"estimation.pdf","base64","application/pdf");
// Envoi de l'email
if(!$mail->send())
{
echo "Echec de l'envoi du mail :" . $mail->ErrorInfo;
}
else
{
echo "Message envoyé !";
}
Je reçois bien le mail et sa PJ mais celle-ci n'est pas exploitable (corrompue) alors que sa taille semble correcte.
Je commence à m'arracher les cheveux !
Merci
A voir également:
- Souci fichier corrompu
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
J'y ai pensé, mais à force d'essayer, j'ai pu trouver la solution, il s'agissait essentiellement d'un problème d'encodage.
Dans les faits, il faut retirer l'entête "data:image/jpeg;base64," de la chaine de caractères générée par jsPDF + , du côté PHP, supprimer le codage base64 du fichier généré et envoyé par mail.
Depuis, tout marche au poil !
Merci toutefois à toi pour cette suggestion.
jsPDF avec PHPMailer
js :
PHP