Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.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 为什么我会得到一个;空洞的回应“;在setasign中更改源文件时?_Php_Fpdi - Fatal编程技术网

Php 为什么我会得到一个;空洞的回应“;在setasign中更改源文件时?

Php 为什么我会得到一个;空洞的回应“;在setasign中更改源文件时?,php,fpdi,Php,Fpdi,我正在使用setasign V1,因为我们的服务器还没有更新到5.5.9版本,我正在尝试从3个不同的pdf导入第一页来创建一个新的pdf。但是如果我使用多个文件,我会得到一个错误 我也在使用Slim框架运行它,并且必须将名称空间添加到每个setasign文件中以使它们读入 它可以完美地处理单个文件,但在尝试从多个文件中获取一个页面时却不行 在我下面的代码中,循环遍历每个文件以获得第一页,然后添加一些文本。这是一个函数,我在其中传递一个“作业”数组以及要保存到的$savedFile路径 如果我将“

我正在使用setasign V1,因为我们的服务器还没有更新到5.5.9版本,我正在尝试从3个不同的pdf导入第一页来创建一个新的pdf。但是如果我使用多个文件,我会得到一个错误

我也在使用Slim框架运行它,并且必须将名称空间添加到每个setasign文件中以使它们读入

它可以完美地处理单个文件,但在尝试从多个文件中获取一个页面时却不行

在我下面的代码中,循环遍历每个文件以获得第一页,然后添加一些文本。这是一个函数,我在其中传递一个“作业”数组以及要保存到的$savedFile路径

如果我将“$pdf->setSourceFile($file)”行放在循环之前,并将$file定义为$inputFiles数组中的任何文件,它可以正常工作,但显然在创建的3个页面中,每个页面上都只有第一个文件的第一页。如果我让它只引入第二个文件或第三个文件,它也会起作用。但是如果我把这一行放在循环中,我会得到一个空的响应错误。 我还尝试在每个循环结束时取消解析器的设置,但没有任何区别

目前,由于没有抛出错误详细信息,我无法找出它的错误所在

$pdf = new FPDI();
$inputFolder = $_SERVER["DOCUMENT_ROOT"] . '/' . $app->config->get('saveLocations.COC') . '/';      
$inputFiles = [];
foreach($jobs as $job){
    $coc = $app->coc_approval->getCOC($app, $job);
    $cocFile = $coc->file;      
    array_push($inputFiles, $inputFolder . $cocFile);   
}

foreach($inputFiles as $file){
    $pdf->setSourceFile($file);
    $pdf->AddPage();

    $tpl = $pdf->importPage(1);
    $pdf->useTemplate($tpl, 0, 0, null, null);
    // Set font and color
    $pdf->SetFont('Helvetica');
    $pdf->SetFontSize('10');
    $pdf->SetTextColor(0, 0, 0); // RGB
    // Add Customer and PO details
    $x = 75.5;
    $pdf->SetXY($x,67);
    $pdf->Cell(0, 15, $customer);
    $pdf->SetXY($x, 73);
    $pdf->Cell(0, 15, $PO); 
    //unset($pdf->parsers[$file]);
}           
$pdf->Output($savedFile, 'F');
我希望$inputFiles数组中列出的每个文件的第一页都保存在最终的输出pdf中


如有任何建议,将不胜感激,谢谢

将结果保存到本地路径,该路径位于
$savedFile
中。FPDF本身没有错误,因为
空响应
。因此,您应该检查为什么保存的文件没有转发到响应对象,或者?嗨,Jan,问题似乎在于更改源文件。如果我在循环外定义另一个变量$onefile,然后在循环内调用$pdf->setSourceFile($onefile),将代码更改为仅使用一个文件,那么它工作正常,并保存一个3页文件,重复相同的页面。但是,如果我在->setSourceFile方法中放置一个新的文件链接,它将失败,并且没有响应。我想我可能需要先删除原始集合文件?在您的代码中,您从未启动过响应。代码看起来不错。您是否检查了生成的文件$savedFile的内容?你到达这条线了吗?如何处理错误?嗨,Jan,$savedFile的内容很好,只要我在过程中不更改源文件,如果我更改了源文件,那么它在这一行失败,永远不会到达输出行。我在想,如果我尝试为每个单独的文件输入创建一个文件,当我遇到错误时,它可能会尝试重新创建一个类。我会进一步调查的。重写的Slim framework方法正在捕获错误,但是如果我尝试在这一行周围放置一个特定的捕获,那么它也会给出一个空的响应错误。如果您从未到达
Output()
调用,则以前会抛出一个异常。您只需控制错误报告即可获得有意义的错误消息。您可以将结果保存到
$savedFile
中的本地路径。FPDF本身没有错误,因为
空响应
。因此,您应该检查为什么保存的文件没有转发到响应对象,或者?嗨,Jan,问题似乎在于更改源文件。如果我在循环外定义另一个变量$onefile,然后在循环内调用$pdf->setSourceFile($onefile),将代码更改为仅使用一个文件,那么它工作正常,并保存一个3页文件,重复相同的页面。但是,如果我在->setSourceFile方法中放置一个新的文件链接,它将失败,并且没有响应。我想我可能需要先删除原始集合文件?在您的代码中,您从未启动过响应。代码看起来不错。您是否检查了生成的文件$savedFile的内容?你到达这条线了吗?如何处理错误?嗨,Jan,$savedFile的内容很好,只要我在过程中不更改源文件,如果我更改了源文件,那么它在这一行失败,永远不会到达输出行。我在想,如果我尝试为每个单独的文件输入创建一个文件,当我遇到错误时,它可能会尝试重新创建一个类。我会进一步调查的。重写的Slim framework方法正在捕获错误,但是如果我尝试在这一行周围放置一个特定的捕获,那么它也会给出一个空的响应错误。如果您从未到达
Output()
调用,则以前会抛出一个异常。您只需将错误报告置于您的控制之下,即可获得有意义的错误消息。