我试图强制下载我正在生成的pdf文件。我不需要将pdf文件实际保存在服务器上。
所以当我生成我的pdf文件时,我会得到文件内容。然后我用base64编码它。现在的问题是我需要强制下载它。我已经浏览了整个网络,但是我还没有找到任何搜索结果,告诉我如何在没有实际放置在网站上的文件的情况下执行此操作。
我尝试过以下代码:
header("Content-type: application/pdf");
header("Content-disposition: attachment; filename=\"invoice.pdf\"");
header("Content-Length: ".filesize($pdffile));
readfile(base64_decode($pdffile));
但是,它给了我一个损坏的pdf文件,(1 kb)。实际文件大约应该是50kb。
关于我可以尝试的任何想法?
答案 0 :(得分:2)
readfile尝试从文件输出内容,但您只有数据字符串。试试这个:
header("Content-type: application/pdf");
header("Content-disposition: attachment; filename=\"invoice.pdf\"");
echo base64_decode($pdffile);
我还建议将$ pdffile重命名为$ pdfcontent,以便更好地澄清。