我有一个简单的下载表单,在提交时我希望用户能够下载 PDF 并同时打开感谢页面。
我尝试使用 window.open 以及几个 PHP 方法(标题)。虽然 PHP 方法正在执行弹出下载 pdf 屏幕的工作,但该页面并未重定向到感谢页面。
任何人都可以帮助使用 JS 或 PHP 吗?
我对这两个都不太了解——如果你能分享整个代码,我将不胜感激。谢谢!:)
我有一个简单的下载表单,在提交时我希望用户能够下载 PDF 并同时打开感谢页面。
我尝试使用 window.open 以及几个 PHP 方法(标题)。虽然 PHP 方法正在执行弹出下载 pdf 屏幕的工作,但该页面并未重定向到感谢页面。
任何人都可以帮助使用 JS 或 PHP 吗?
我对这两个都不太了解——如果你能分享整个代码,我将不胜感激。谢谢!:)
您最好的方法是正常打开感谢表,然后在超时(使用setTimeout
)时,使用window.open("url", "_blank")
打开 PDF 下载。
您将需要 3 个文件:
您的带有表单页面的文件具有:<form action="thanks.php" id="form" method="POST"><!-- your form content and a submit button here--></form>
一个Thanks.php页面,其中包含:
<iframe src="download_pdf.php" style="display:none;" />
<?php
$file = 'filename.pdf';
if(!file){
die('Error: file not found');
}else{
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$file");
header("Content-Type: application/pdf");
header("Content-Transfer-Encoding: binary");
readfile($file);
}
?>
在将任何其他内容发送到浏览器之前,您只能使用 header() 进行 PHP 重定向。页面加载后,您需要使用 JS。这对 JS 来说很简单:
window.location = "http://example.com";
但是,我会质疑一次加载两个窗口。显示感谢页面并提供一个链接可能更容易,他们可以在该页面上查看/下载 PDF。
实际上,用户不应该重复使用感谢页面 url 来重复下载 pdf,这会破坏首先获取用户信息的目的。因此,在您可以显示下载的感谢页面中需要超时。但是请检查您是否可以通过使用弹出窗口以某种方式掩盖感谢页面的 url。