在我的LOCALHOST上,我有一个创建和FDF文件的表单...同样在该文件中它包含一个'全路径' - > 'http://localhost/example/example.pdf'....所以当我点击链接'在浏览器中打开FDF文件时,它会加载PDF,并在正确的位置插入FDF数据。
当我在我的Linux服务器(非本地)上执行此操作时,当我单击FDF文件打开它时,它只是打开文件,并将文本(fdf文件)呈现到屏幕而不是'打开'fdf文件。
想知道是否有人可以帮助我完成此过程...我想打开FDF文件,因此它也会打开PDF文件。
这是我已经完成的一些代码,但是我已经注释掉了'标题'...因为我不认为我在打开文件时需要标题,而不是将其渲染到屏幕上?
$fdf = new fdf();
//$response = $fdf->fdfMerge(APP_ROOT."/forms/test/FormTest.pdf", $_POST);
$response = $fdf->renderFDF(DOMAIN."forms/test/FormTest.pdf", $_POST, $_POST['userId'], $_POST['contactId']);
//var_dump($response);
// Link DIRECTLY to the FDF file...
echo "Internal: <a href='". $response['internalPath'] ."'>". $response['internalPath'] ."</a><br />";
echo "External: <a href='". $response['externalPath'] ."'>". $response['externalPath'] ."</a><br />";
/*
if(ini_get('zlib.output_compression'))
ini_set('zlib.output_compression', 'Off');
header("Pragma: public"); // required
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private", false); // required for certain browsers
header("Content-Type: application/x-download");
header("Content-Disposition: attachment; filename=".$response['fdfFile'].";" );
header("Content-Length: ".$filesize($response['fdfFile'])."");
header("Content-Transfer-Encoding: binary");
ob_clean();
flush();
fopen($response['fullPath']);
*/
---来自LINUX BOX的浏览器响应---
%FDF-1.2
%âãÃÓ
1 0 obj
<<
/FDF << /Fields [ <</T(formId)/V(111)>><</T(userId)/V(23)>><</T(contactId)/V(2950)>><</T(firstName)/V(Justin)>><</T(lastName)/V(Geezer)>><</T(email)/V(justin@stickypages.ca)>>]
/F (https://www.example.com/forms/test/FormTest.pdf) /ID [ <bd71513804f75900e899f3be924b69ef>
] >>
>>
endobj
trailer
<<
/Root 1 0 R
>>
%%EOF
当我使用“HEADER”响应时,这是一个ScreenShot。
编辑:如果我从服务器下载FDF文件,然后“双击”打开文件,它会从网上下载PDF文件并打开它。
答案 0 :(得分:0)
最好的猜测是fpdf无法写入tmp目录,或者它正在使用的文件有些被阻止。检查你的apache日志,你能举例说明linux上显示的文本吗?您的php文件中可能有空格或返回键。例如
<?php
echo "woohoo";
?>
<?php
echo "second woohoo";
?>
在关闭和打开标签的中间,有一个返回键,可以搞砸linux但不是窗口(因为窗口忽略了导致换行的特殊字符)。
此外,在fpdf生成代码的末尾,不要关闭标记,即:
<?php
echo "second wooho";