6

Yii Framework、TCPDF、jQuery を使用して PDF を生成しています。

pdfは、フォームに入力し、ajaxを使用して送信することで生成されます。

PDFが作成されますが、クライアントに戻ったときに問題が発生し、ダウンロードされません。

ここにphpコードがあります $pdf->Output('Folder Label.pdf','D');

jQuery on success 関数には success: function(data) { window.open(data); }

このサイトから入手したもの。

助けてください

4

4 に答える 4

3

PDF のブラウザーのダウンロード ダイアログが表示されないことが問題である場合、解決策は次のようにすることです。

まず、ブラウザーをリダイレクトして (window.location他の回答が言うように使用)、アプリケーションの特別なコントローラー アクションに移動します。たとえば、この URL: を使用しますhttp://your.application.com/download/pdf/filename.pdf

URL で参照されているアクションを次のように実装します。

public function actionPdf() {
    header('Content-Type: application/pdf');
    header('Content-Disposition: attachment; filename="filename.pdf";');
    header('Content-Length: '.filesize('path/to/pdf'));
    readfile('path/to/pdf');
    Yii::app()->end();
}

これにより、ブラウザがファイルをダウンロードします。

于 2011-04-01T00:46:52.550 に答える
1

tcpdf では、この引数を Output メソッドに渡すだけです。

$pdf->Output('yourfilename.pdf', 'D'); 

それで全部です

于 2016-01-06T10:56:30.313 に答える
1

PDFをサーバーのどこかに保存してwindow.location = '/url/to/pdf-you-just-saved.pdf';から、JavaScriptから発行する必要があります。ユーザーのブラウザは、PDF ファイルをダウンロードするように促します。

于 2011-03-31T13:20:03.317 に答える
0

一部のブラウザーではエラーが発生しますが、これはウィンドウの位置を設定する正しい方法です。

window.location.assign( downloadUrlToPdf );

そう

  1. Ajax経由でPDFを作成するリクエストをサーバーに送信します
  2. サーバー上で pdf を処理して生成する
  3. 先ほど作成したファイルへの URL を Ajax 呼び出しで返します。
  4. 上記のコードフラグメントを使用して、上記のファイルのダウンロードを開きます
于 2011-03-31T13:25:41.927 に答える