mysql - 如何使用 pdftk fill_form 而不写入临时文件

标签 mysql pdf pdf-generation fpdf pdftk

我正在尝试使用 mysql 数据库中的数据填充 pdf 报告。它在我的本地计算机上运行良好,但是当我将其上传到 www.000webhost.com 时,未生成 pdf 文档。

我知道每次单击打印报告时,文档都会将临时文件写入我的文件夹。谁能告诉我为什么它在托管提供商上不起作用以及如何解决此问题。我的印象是这是一个安全问题。

我必须写一个临时文件吗?为什么我不能使用 $fdf 变量而不是临时文件来填充报告?

$fdf_fn= tempnam( '.', 'fdf' );
$fp= fopen( $fdf_fn, 'w' );
if( $fp ) {
    fwrite( $fp, $fdf );
    fclose( $fp );

//attachment for view
header(   'Content-type: application/pdf' );
header(   'Content-disposition: inline; filename=TEST.pdf');

passthru(   "pdftk ./../../reports/TEST.pdf fill_form ". $fdf_fn.' output - flatten' );

unlink( $fdf_fn ); // delete temp file

最佳答案

Can anyone tell me why it doesn't work on the hosting provider and how I can fix this issue. I am under the impression that it is a security issue.

我的猜测是您根本没有所需目录的写入权限。

您在当前工作目录 (.) 中创建临时文件。根据您的托管提供商和 HTTP 服务器配置,当前工作目录不一定是您认为的那样,也不是可写的。特别是因为您的程序可能会以 wwwnobody 身份运行。

我假设您必须创建“临时”目录,然后调整其权限,或者使用“全局可写”位置,例如 /tmp

最后,您的程序中有一个“向上”移动的相对路径:./../../reports/TEST.pdf fill_form 这几乎没有机会在您的托管...

关于mysql - 如何使用 pdftk fill_form 而不写入临时文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17958161/

相关文章:

mysql - 尝试使用 phpMyAdmin 创建 MySQL 触发器,但出现 MySQL 错误 #1422

mysql - 根据列内容选择单行结果

html - 从 Asp.net MVC Controller 返回 Pdf 文档

java - 使用 openpdf 的 FlyingSaucer 无法正确渲染弹性框

pdf-generation - 使用 PDFBox 生成的 PDF 为空白

javascript - 将 Node.js GET/POST 请求更改为 Ajax

php - 在 PHP/CodeIgniter 中,不止一个事务在没有完成另一个事务的情况下开始;比如嵌套事务

react-native - 使用 React Native 的 Expo PDF 查看器

python - 如何在 Odoo 12v 中从销售订单、发票、采购订单、账单等 PDF 报告的第二页中删除页眉和页脚

iphone - 在 iOS 中自动创建图形(条形图和饼图)并将其转换为 pdf,而无需为图形创建 uiview