Enregistrement de fichiers PDF envoyés par DocuSign Connect

Je suis capable d'analyser le xml reçu de Docusign Connect correctement, mais je rencontre des problèmes de sauvegarde des PDFBytes dans un fichier PDF pour être visionné plus tard. Ce qui suit est un extrait du code que j'utilise.

$filename = $xml->DocumentPDFs->DocumentPDF->Name;
$contents = $xml->DocumentPDFs->DocumentPDF->PDFBytes;
file_put_contents($filename, $contents);                

Lorsque j'essaie d'ouvrir le fichier, l'utilisateur ne comprend pas le fichier.

Est-ce que je manque quelque chose?

2
ajouté édité
Vues: 1
J'ai trouvé la raison pour laquelle ... file_put_contents ($ filename, $ contents); doit être file_put_contents ($ filename, base64_decode ($ contents)); parce que c'est codé en base64.
ajouté l'auteur user3022762, source
Je ne peux pas répondre à ma propre question car j'ai moins de 10 points de réputation: P
ajouté l'auteur user3022762, source
Êtes-vous sûr que le PDFBytes de la structure $ xml que vous avez n'est pas corrompu? Avez-vous essayé avec différentes enveloppes et obtenez la même chose? Sans aucune autre information sur la surface, il semble que cela devrait fonctionner ...
ajouté l'auteur Ergin, source
Oh belle prise, tu devrais répondre à ta propre question alors que la communauté profite de ta réponse
ajouté l'auteur Ergin, source

1 Réponses

(Poster votre commentaire comme réponse, afin que d'autres puissent bénéficier de cette information dans le futur.)

$contents is base64-encoded, so you need to use base64_decode -- like this:

file_put_contents($filename, base64_decode($contents)); 
1
ajouté