为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
喵喵时光机 2019-07-04 17:41:24
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")一直到最后都没有起作用,我期待着,所以我不知道该如何调整这个。
查看完整描述

3 回答

?
白衣非少年

TA贡献1155条经验 获得超0个赞

我不认为这是可以做到的-尽管我不是百分之百肯定。

常见的情况(例如,在流行的下载站点中)正好相反:首先,您可以访问页,然后开始下载。

因此,将用户重定向到最终这一页(除其他外)说:

您的下载应该自动启动。如果没有点击[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]


查看完整回答
反对 回复 2019-07-04
?
弑天下

TA贡献1818条经验 获得超8个赞

在这种情况下很容易做到,这是真正需要的。

但是,您需要在JavaScript和cookie中做一些工作:

在PHP中,您应该添加设置cookie

header('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等等,但是它可以工作。


查看完整回答
反对 回复 2019-07-04
  • 3 回答
  • 0 关注
  • 661 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信