TCPDF Enregistrer le fichier dans un dossier?
J'utilise TCPDF pour imprimer un reçu et ensuite l'envoyer au client avec phpMailer, mais j'ai un problème:
Je ne sais pas comment sauvegarder le fichier dans un pdf.
j'ai essayé ceci:
// reset pointer to the last page
$pdf->lastPage();
//Close and output PDF document
$pdf->Output('kuitti'.$ordernumber.'.pdf', 'I');
$this->Output("kuitit");
10 réponses
essayez ceci
$pdf->Output('kuitti'.$ordernumber.'.pdf', 'F');
il stocke le fichier pdf généré dans votre dossier personnalisé de votre projet
$filename= "{$membership->id}.pdf";
$filelocation = "D:\wamp\www\project\custom";//windows
$filelocation = "/var/www/project/custom"; //Linux
$fileNL = $filelocation."\".$filename;//Windows
$fileNL = $filelocation."/".$filename; //Linux
$this->pdf->Output($fileNL, 'F');
$pdf->Output()
prend un deuxième paramètre $dest
, qui accepte un seul caractère. Par défaut, $dest='I'
ouvre le PDF dans le navigateur.
Utiliser F
pour enregistrer le fichier
$pdf->Output('/path/to/file.pdf', 'F')
seule chose qui a fonctionné pour moi:
// save file
$pdf->Output(__DIR__ . '/example_001.pdf', 'F');
exit();
pour ceux qui ont des difficultés à stocker le fichier, le chemin doit passer par root. Par exemple, le mien était:
$pdf->Output('/home/username/public_html/app/admin/pdfs/filename.pdf', 'F');
$pdf->Output( "myfile.pdf", "F");
TCPDF erreur: Impossible de créer le fichier de sortie: myfile.pdf
Dans le include/tcpdf_static.php
le fichier sur 2435 ligne dans la fonction statique fopenLocal
si je supprime l'instruction " if " complète cela fonctionne très bien.
public static function fopenLocal($filename, $mode) {
/*if (strpos($filename, '://') === false) {
$filename = 'file://'.$filename;
} elseif (strpos($filename, 'file://') !== 0) {
return false;
}*/
return fopen($filename, $mode);
}
l'exemple de nick Le sauvegarde dans votre localhost.
Mais vous pouvez également le sauvegarder sur votre lecteur local.
si vous utilisez doublebackslashes:
$filename= "Invoice.pdf";
$filelocation = "C:\invoices";
$fileNL = $filelocation."\".$filename;
$pdf->Output($fileNL,'F');
$pdf->Output($filename,'D'); // you cannot add file location here
P. S. Dans Firefox (en option) Outils> Options > onglet Général> Télécharger >Toujours me demander où enregistrer les fichiers
TCPDF utilise fopen()
pour sauvegarder des fichiers.
Tous les chemins sont passés à TCPDF Output()
fonction doit donc être un chemin absolu.
si vous souhaitez sauvegarder sur un chemin relatif, utilisez par exemple le __DIR__
constante globale (voir cette réponse).
Si vous avez encore
TCPDF erreur: Impossible de créer le fichier de sortie: myfile.pdf
Vous pouvez éviter la logique de sauvegarde de fichier de TCPDF en mettant des données PDF à une variable et en sauvegardant cette chaîne de caractères dans un fichier:
$pdf_string = $pdf->Output('pseudo.pdf', 'S');
file_put_contents('./mydir/myfile.pdf', $pdf_string);
Vous pouvez essayer;
$this->Output(/path/to/file);
Donc, pour vous, ce sera comme;
$this->Output(/kuitit/); //or try ("/kuitit/")