2011-06-17 5 views
1

私のLOCALHOSTには、FDFファイルを作成するフォームがあります...そのファイルには、 'フルパス' - > 'http://localhost/example/example.pdf'も含まれています。ブラウザ内でFDFファイルを開くためにリンクをクリックすると、適切な場所に挿入されたFDFデータをPDFにロードします。FDFローカル作品を開くが、サーバーにはない

Linuxサーバ(ローカルではない)でこれを行うと、FDFファイルをクリックして開くと、ファイルが開き、fdfを開く代わりにテキスト(fdfファイル)がレンダリングされますファイル。

誰もがこのプロセスで私を助けることができたら...私はFDFファイルを開きたいので、PDFファイルも開きます。

これは私が行ったいくつかのコードですが、私は「ヘッダー」をコメントアウトしました...スクリーンにレンダリングするのではなく、ファイルを開くときにヘッダーが必要と思わないので、私は "HEADER" の応答を使用するときにここで

%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([email protected])>>] 
/F (https://www.example.com/forms/test/FormTest.pdf) /ID [ <bd71513804f75900e899f3be924b69ef> 
] >> 
>> 
endobj 
trailer 
<< 
/Root 1 0 R 

>> 
%%EOF 

$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からブラウザの応答が---、スクリーンショットです。 enter image description here


編集:私は、サーバーからFDFファイルをダウンロードし、ファイルを開くために「ダブルクリック」した場合、それはウェブからPDFファイルをダウンロードし、罰金、それを開きます。

+0

は、ヘッダ問題のように、あなたのコードを表示することができます聞こえますか? – JamesHalsall

+0

@Jaitsu、コードサンプルを追加しました... – Justin

+0

あなたのローカルホストは何を実行していますか? Mac、Windows、Linux?どのバージョンのPHPがあなたのlocalhostとあなたのLinuxボックスにありますか? – JamesHalsall

答えて

0

fpdfがtmpディレクトリに書き込むことができないか、または使用しているファイルがブロックされているかのようです。あなたのApacheログをチェックして、Linuxに表示されるテキストの例を挙げられますか?あなたのPHPファイルに空白やリターンキーがあるかもしれません。例えば開閉タグを使用して中央に

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

、缶台無しに窓、Linux上ではなく、リターンキー(Windowsは新しい行の原因となる特殊文字を無視するよう)があります。

また、FPDF生成コードの最後に、タグを閉じていけない、すなわち:

<?php 
echo "second wooho"; 
+0

FDFファイルで「リンク」をクリックしたときに、「応答」を含むように質問を更新しました。 – Justin

+0

変更ヘッダー( "Content-Type:application/x-download");ヘッダー( "Content-Type:application/pdf")。 –

+0

質問を画像レスポンスで更新しました。 HEADERSを使用していないうちに、動作していなかったので... – Justin

関連する問題