Php 使用DOMPDF创建PDF并重定向
在PHP项目中,我需要创建一个PDF文件,并在用户单击提交按钮时重定向到另一个页面。 我已经设法使用创建了pdf文件。PDF创建在一个单独的文件Php 使用DOMPDF创建PDF并重定向,php,dompdf,Php,Dompdf,在PHP项目中,我需要创建一个PDF文件,并在用户单击提交按钮时重定向到另一个页面。 我已经设法使用创建了pdf文件。PDF创建在一个单独的文件('PDFRecipt.php')中完成。 当用户单击主页上的按钮时,我调用了该页面。这是如何调用PDF页面 header('location:PDFRecipt.php'); 但问题是当我在调用PDF页面后尝试重定向时 header('location:Other.php'); 它不创建PDF(仅重定向)。我试着换衣服 header('locati
('PDFRecipt.php')
中完成。
当用户单击主页上的按钮时,我调用了该页面。这是如何调用PDF页面
header('location:PDFRecipt.php');
但问题是当我在调用PDF页面后尝试重定向时
header('location:Other.php');
它不创建PDF(仅重定向)。我试着换衣服
header('location:PDFRecipt.php')代码>
到
include_once('PDFRecipt.php')代码>
然后它无法正确创建PDF(损坏的PDF文件)
如何创建PDF文件并重定向到其他页面
编辑:
在PDFRecipt.php中编码
$html='SOME HTML';
include("../../dompdf/dompdf_config.inc.php");
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
$dompdf->stream('FileName.pdf');
//header('location:Other.php);
对问题的答复
为此,您需要将第二个头
调用移动到PDFRecipt
文件中。目前,当它们都在一个文件中时,您对头的第二次调用将覆盖第一次调用
请记住,当输出发送到用户浏览器时会发送标题,这就是为什么您经常看到人们在标题('位置:http://example.org');代码>
因此,在本例中,Location
,任何后续设置相同报头的调用都将覆盖第一个,直到发送报头为止
还值得指出的是,您应该在位置
中使用完整的web URL:
HTTP/1.1需要一个绝对URI作为»位置:包括
方案、主机名和绝对路径,但有些客户端接受
相对URI。您通常可以使用$\u SERVER['HTTP\u HOST'],
$\u SERVER['PHP\u SELF']和dirname()从
亲友
根据手册中的标题
页:
根据评论更新
因此,您正在使用stream()
方法向客户端发送PDF-您不能将其与位置:
标题结合使用。这是因为DOMPDF已经将内容刷新到屏幕上。我假设您的PDFRecipt.php
文件正在将PDF存储到某个磁盘上
有关更多详细信息,请参阅DOMPDF源代码:问题的答案
为此,您需要将第二个头
调用移动到PDFRecipt
文件中。目前,当它们都在一个文件中时,您对头的第二次调用将覆盖第一次调用
请记住,当输出发送到用户浏览器时会发送标题,这就是为什么您经常看到人们在标题('位置:http://example.org');代码>
因此,在本例中,Location
,任何后续设置相同报头的调用都将覆盖第一个,直到发送报头为止
还值得指出的是,您应该在位置
中使用完整的web URL:
HTTP/1.1需要一个绝对URI作为»位置:包括
方案、主机名和绝对路径,但有些客户端接受
相对URI。您通常可以使用$\u SERVER['HTTP\u HOST'],
$\u SERVER['PHP\u SELF']和dirname()从
亲友
根据手册中的标题
页:
根据评论更新
因此,您正在使用stream()
方法向客户端发送PDF-您不能将其与位置:
标题结合使用。这是因为DOMPDF已经将内容刷新到屏幕上。我假设您的PDFRecipt.php
文件正在将PDF存储到某个磁盘上
有关更多详细信息,请参阅DOMPDF源代码:我尝试了这个方法,但没有成功。它创建PDF文件,但不重定向:(您的PDFRecipt.php
文件包含哪些内容?请使用源代码更新您的问题。我在实现上述内容时从未遇到过问题-可能是代码中存在错误或冲突导致它无法重定向。我尝试了此操作,但没有成功。它创建了PDF文件,但没有重定向:(你的PDFRecipt.php
文件包含什么?请用源代码更新你的问题。我在实现上述功能时从未遇到过问题-可能是代码中存在错误或冲突导致它无法重定向。