当我进行php调用:exec(“./wkhtmltopdf 64 google.com google.pdf")时,我可以生成google的pdf。
我需要创建一个pdf的我的网站,但是,内容是依赖于会话。因此php命令:exec(“./wkhtmltopdf 64 myprofile.php profile.pdf")将生成一个不具有与浏览器相同内容的pdf文件。
经过一些研究,我发现了一个示例,其中有人将会话id作为wkhtmltopdf命令的一部分传递。下面是我的命令: exec("./wkhtmltopdf-amd64 64-cookie sessionid $sessionID myprofile.php profile.pdf");
$sessionID是php命令session_id()的结果;
不生成PDF文件。有人知道我做错了什么吗?如何使wkthmltopdf使用与浏览器相同的会话数据?
发布于 2016-05-24 12:25:46
使用$_COOKIE传递$_SESSION数据:在传递$_SESSION变量的页面中,将其转换为选择任何set变量COOKIE或SESSION的变量,因为wkhtmltopdf只能访问COOKIE而不是。
$sessionID = $_SESSION['sessionid'];做:
$sessionID = $_SESSION['sessionid'] || $_COOKIE['sessionid'];或:
$sessionID = !isset($_SESSION['sessionid']) ? $_COOKIE['sessionid'] : $_SESSION['sessionid'];然后,在generate函数中,传递如下所示:
wkhtmltopdf --post BYPASS yes --cookie sessionid $sessionID ...请注意,$_SESSION的键与$_COOKIE的键以及传递给$_COOKIE的-cookie参数相同。
https://stackoverflow.com/questions/28181925
复制相似问题