如何从php使用pdftk(作为ubuntu快照)?
短文: 我正在努力使这项工作:如何从php使用pdftk(作为ubuntu快照)?,php,ubuntu,pdftk,Php,Ubuntu,Pdftk,短文: 我正在努力使这项工作: $blank_pdf_form = "blankform.pdf"; $cmd = "pdftk $blank_pdf_form fill_form - output -"; $descriptorspec = array( 0 => array("pipe", "r"), 1 => array("pipe", "w"), 2 => array("pipe", "w") ); $process = proc_open($c
$blank_pdf_form = "blankform.pdf";
$cmd = "pdftk $blank_pdf_form fill_form - output -";
$descriptorspec = array(
0 => array("pipe", "r"),
1 => array("pipe", "w"),
2 => array("pipe", "w")
);
$process = proc_open($cmd, $descriptorspec, $pipes);
if (is_resource($process)) {
//row2xfdf is made-up function that turns HTML-form data to XFDF
fwrite($pipes[0], raw2xfdf($_POST));
fclose($pipes[0]);
$pdf_content = stream_get_contents($pipes[1]);
fclose($pipes[1]);
$return_value = proc_close($process);
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="output.pdf"');
echo $pdf_content;
}
幸好这里被偷了:
我的问题
它不适用于以下消息:
Sorry, home directories outside of /home are not currently supported.
See https://forum.snapcraft.io/t/11209 for details.
我的理解:
我在ubuntu上,pdftk是作为快照提供的,因此对文件系统的访问非常有限。从php运行(用户www-data
)会进一步限制这一点
我做了什么/尝试了什么:
第一个错误是要求目录存在/var/www/snap/pdftk/…
我手动创建了所有的777
。没有什么变化。
我用/media
中的777
创建了一个tmp
文件夹,并执行了快照连接pdftk:removable media:removable media
。
php可以在文件存在时访问它们。但pdftk仍然存在同样的错误
你知道怎么解决这个问题吗
pdftk应该在哪里使用pdf?
我正在考虑使用多个管道1用于pdf,1(x)fdf bu无法确定是否可以完成此操作?也面临这样的问题
通过将www数据用户的主目录更改为/home/www解决了这个问题,现在它工作得很好你有什么理由必须使用快照而不是普通的包吗?根据我所看到的(和经验),它不再在ubuntu的标准包存储库中(18.04.3 LTS)。对。更新版本的Ubuntu(从18.10开始)中有一个替代版本,如果你想在稳定的版本上运行并且不着急,你甚至可以等待20.04。如果这不是一个选择,也许可以帮助。免责声明:我是该替换的主要作者。