我在页面上添加了一个链接,点击该链接生成pdf并要求下载我使用过的fpdf类。
我的新要求是点击链接应生成n个不同内容的pdf,并要求下载这些pdf文件。
我无法找到完成相同的方法。
请帮我解决这个问题。
由于
答案 0 :(得分:2)
在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");
希望这会有所帮助; - )
答案 1 :(得分:1)
您无法向用户发送多个文件,但您可以生成这些文件,例如打包在服务器上压缩并作为一个文件发送。
答案 2 :(得分:1)
将生成的文件发送到浏览器的正确方法是$pdf->Output()
- 这只允许您发送一个生成的pdf文件。发送更多文件的唯一选择是压缩它们[1],然后发送包文件。
[1] http://www.devco.net/archives/2005/05/24/creating_zip_files_with_php.php
答案 3 :(得分:1)
我在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');
效果很好。