1

私のLOCALHOSTには、FDFファイルを作成するフォームがあります...また、そのファイルには「フルパス」->「http://localhost/example/example.pdf」が含まれています....だから私が「リンクをクリック」してブラウザー内で FDF ファイルを開くと、FDF データが適切な場所に挿入された PDF が読み込まれます。

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」応答を使用した場合のスクリーンショットを次に示します。 ここに画像の説明を入力


編集:サーバーからFDFファイルをダウンロードし、「ダブルクリック」してファイルを開くと、WebからPDFファイルがダウンロードされ、正常に開きます。

4

1 に答える 1

0

最良の推測は、fpdf が tmp ディレクトリに書き込めないか、使用しているファイルが何らかの方法でブロックされていることです。Apache のログを確認してください。Linux で表示されるテキストの例を教えてください。PHP ファイルに空白またはリターン キーが含まれている可能性があります。例えば

<?php
echo "woohoo";
?>
<?php
echo "second woohoo";
?>

終了タグと開始タグの中間には、Linux では混乱を招く可能性がありますが、Windows では混乱を招く可能性のあるリターン キーがあります (Windows は改行の原因となる特殊文字を無視するため)。

また、fpdf 生成コードの最後で、タグを閉じないでください。

<?php
echo "second wooho";
于 2011-06-17T23:48:51.040 に答える