0

download.php という名前のファイルがあり、その中に getpdf 関数を呼び出します。

ユーザーがダウンロードボタンをクリックすると、ajax経由でdownload.phpを呼び出してpdfファイルをダウンロードします。しかし、何も起こらず、ダウンロード ウィンドウは表示されません。firebug Netタブで確認しましたが、クリックイベントでdownload.phpがリクエストされます。そのサイズも変更され、ファイルがその場所から読み取られていることを示しますが、ダウンロード ウィンドウは表示されません。

getpdf コードは次のとおりです。

function getpdf($id) {
  header('Content-Type: application/pdf');
  readfile('/san/theo-books/PDFs/'.$id.'.pdf');
  exit;
}

そして、ここに download.php コードがあります:

$pdf_id = $_POST('pdi');
echo getpdf($pdf_id);

何が問題ですか?手伝ってくれませんか?

4

1 に答える 1

0

これが完全なポストバック バージョンです。ポップアップ ダウンロード ウィンドウには完全なポストバックが必要なため、jQuery Ajax は使用していません。

<a id="pdf-10" href="#">PDF Export</a>

$(document).ready(function () {
    $('a[id^="pdf"]').click(function (event) {
        event.preventDefault();
        var pdfExportPath = "/san/theo-books/PDFs/";  
        var $a = $(this);
        var postId = $a.attr('id').replace("pdf-","");
        var form = $('<form action="' + pdfExportPath + '" name="pdf' + postId + '" id="pdf' + postId + '" method="POST"> <input id="id" name="id" type="hidden" value="' + postId + '" /></form>');
        $(form).appendTo('body');
        form.submit();
    });
});
于 2012-12-28T13:51:13.017 に答える