猿问

PHP生成下载文件,然后重定向

PHP生成下载文件,然后重定向

我有一个PHP应用程序,它创建一个CSV文件,该文件被迫使用头下载。下面是代码的相关部分:

header('Content-Type: application/csv'); header("Content-length: " . filesize($NewFile)); header('Content-Disposition: 
attachment; filename="' . $FileName . '"'); echo $content;exit();

我想做的是,在生成文件并发送下载提示后,将用户重定向到一个新页面。只是添加header("Location: /newpage")一直到最后都没有起作用,我期待着,所以我不知道该如何调整这个。


喵喵时光机
浏览 662回答 3
3回答

白衣非少年

我不认为这是可以做到的-尽管我不是百分之百肯定。常见的情况(例如,在流行的下载站点中)正好相反:首先,您可以访问后页,然后开始下载。因此,将用户重定向到最终这一页(除其他外)说:您的下载应该自动启动。如果没有点击[a href="create_csv.php"]here[/a].关于启动下载(例如自动调用create_csv.php),您有许多选项:HTML:[meta http-equiv="refresh" content="5;url=http://site/create_csv.php"]JavaScript:location.href = 'http://site/create_csv.php';如果:[iframe src="create_csv.php"][/iframe]

弑天下

在这种情况下很容易做到,这是真正需要的。但是,您需要在JavaScript和cookie中做一些工作:在PHP中,您应该添加设置cookieheader('Set-Cookie: fileLoading=true');然后,在调用下载的页面上,您应该跟踪JS(例如每秒一次),如果有这样的cookie(有用过的插件)jQuery cookie在此):setInterval(function(){   if ($.cookie("fileLoading")) {     // clean the cookie for future downoads     $.removeCookie("fileLoading");     //redirect     location.href = "/newpage";   }},1000);现在,如果文件开始被删除,JS会识别它,并在Cookie被删除后重定向到所需的页面。当然,您可以告诉您需要浏览器来接受cookie、JavaScript等等,但是它可以工作。
随时随地看视频慕课网APP
我要回答