我正在使用mpdf库,但我认为在下载时更改下载文件的名称会相当简单,文档说明如下:
<?php
Example #2
// Saves file on the server as 'filename.pdf'
$mpdf=new mPDF();
$mpdf->WriteHTML('<p>Hallo World</p>');
$mpdf->Output('filename.pdf','F');
?>
D:发送到浏览器并强制下载文件名为filename的文件。 http://mpdf1.com/manual/index.php?tid=125&searchstring=download%20name
我的代码:
if(empty($_GET['module_id'])){
echo 'Please select a module on the previous page.';
}else{
global $link;
$moduleid = $_GET['module_id'];
$assignment_id = $_GET['assignment_id'];
$name = 'name';
$code = 'code';
$course_title = 'course_title';
$title = 'title';
$datedue = 'handin';
$assignment_number = 'number';
$weight = 'weighting';
$handin = 'handin';
$handout = 'handout';
$feedback = 'feedback';
$brief = 'brief';
$submission_procedure = 'sub_details';
$additional_notes = 'add_note';
$result = mysqli_query($link, "SELECT `code` FROM `module` WHERE `module_id` = '$moduleid'");
while($row = mysqli_fetch_row($result)){
echo $row[0];
}
$file_name = $row[0];
ob_end_clean();
$mpdf = new mPDF('en-GB','A4','','',20,15,10,25,10,10);
$courseworkReceipt = '
<html>
<head>
//HTML output removed
</body>
</html>
';
$mpdf->WriteHTML($courseworkReceipt);
$mpdf->AddPage();
$assignment = '
<html>
<head>
/More HTML output removed
</body>
</html>
';
$mpdf->WriteHTML($assignment);
$mpdf->Output($file_name, 'D'); //<-- problem
exit;
}
每当文件下载时,下载为'download.pdf'而不是我的变量$ file_name。
答案 0 :(得分:3)
只需使用"I"
参数:
$mpdf->Output("My downloadable pdf.pdf", "I");
I
:将文件内联发送到浏览器(http://mpdf1.com/manual/index.php?tid=125&searchstring=download%20name)
经测试&amp;使用最新版本的mPDF。
答案 1 :(得分:1)
跳:
$mpdf->WriteHTML($assignment);
$mpdf->Output($file_name, 'D');
rename('download.pdf', $file_name);
exit;
答案 2 :(得分:0)
我不知道您是否应该使用mpdf执行此操作,但在$mpdf->output()
调用之前添加内容处置标头可能有所帮助:
header('Content-Disposition: attachment; filename="'.$file_name.'"');
设置内容配置设置浏览器应将文件另存为。