クリックするとpdfが生成され、fpdfクラスを使用したダウンロードを要求するリンクをページに追加しました。
私の新しい要件は、リンクをクリックすると、コンテンツが異なるn個のPDFが生成され、これらのPDFのダウンロードを要求されることです。
私は同じことを達成する方法を見つけることができません。
これについて私を助けてください。
ありがとう
http://www.phpconcept.net/pclzip/には、素敵な php zip ライブラリがあります。次のようなファイル名の配列があると想像してください
$filenames = array(
"file_01.txt",
"file_02.doc",
"file_03.pdf"
);
コードは次のようになります (未テスト)
require_once('pclzip.lib.php');
$archive = new PclZip('archive.zip');
foreach($filenames as $filename) {
$result = $archive->add($filename);
if($result==0) {
die ("Error: " . $archive->errorInfo(true));
}
}
header("Content-type: application/octet-stream");
header("Content-disposition: attachment; filename=archive.zip");
readfile("archive.zip");
お役に立てれば ;-)
複数のファイルをユーザーに送信することはできませんが、それらを生成し、サーバーにzipでパックして、1つのファイルとして送信することはできます。
生成されたファイルをブラウザに送信する正しい方法は次の$pdf->Output()
とおりです。これにより、生成された pdf ファイルを 1 つだけ送信できます。さらにファイルを送信する唯一のオプションは、ファイルを圧縮してから [1]、パッケージ ファイルを送信することです。
[1] http://www.devco.net/archives/2005/05/24/creating_zip_files_with_php.php
PHPページでフローコードを使用しました:
if(isset($_GET['get_pdf'])){
$query = "SELECT * FROM tbl_fixation WHERE postedby = '$name_user' ORDER BY fixation_id ASC ";
$data_query = $hrmdb->select($query);
if($data_query ){
$i=0;
while ($rows= $data_query ->fetch_assoc()) {
$i++;
$fixation_id = $rows['fixation_id'];
echo "<script> window.open('allpdf/single_letter_fixation.php?fixation_id=".$fixation_id."','_blank');</script>";
}}
}
single_letter_fixation.php の pdf ファイルの出力オプションは次のとおりです。
$pdf->Output('D', $personal_file_number.pdf');
それはうまくいきます。