Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从php使用pdftk(作为ubuntu快照)?_Php_Ubuntu_Pdftk - Fatal编程技术网

如何从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。如果这不是一个选择,也许可以帮助。免责声明:我是该替换的主要作者。