0

我正在用 php 构建一个文件管理器。每个请求都由一个 php 脚本处理,即直接下载路径也将被预先检查,因此我可以禁止某些下载并显示其他内容。

我现在的问题是,stackoverflow 在这里发挥作用,我不知道任何解决方案如何准备下载,也就是首先显示内容,然后刷新页面一次,以便我可以发送文件......但没有副作用。

刷新当然不是问题,但目前还没有刷新解决方案有效。通过 header() 刷新可以防止我的页面显示任何内容,刷新或 javascript 工作与内容的显示有关,但是,使用例如 wget 的下载不再工作。

换句话说,问题是:

由于之前的内容加载会发送一个有效的状态码,因此像 wget 或 curl 这样的程序不会跟随刷新,所以它不会下载文件,只会下载 html。要使用 curl 或 wget 获取实际文件,您需要发送 http 标头,但是,3XX 重定向状态代码将需要 Location 的值。如果 header('Location: ..') 被发送,网站将不会在刷新前显示。

需要一种解决方案,即可以发送适当的状态代码,并且内容仍将在文件分发之前加载。

找到了一种状态码为 206 的部分解决方案,它不需要位置值并且仍可与 wget 一起使用。curl 实际上没有。所以也许还有更好的解决方案?

谢谢你的帮助!

4

2 回答 2

0

<meta>标签呢?

<meta http-equiv="refresh" content="5" URL="http://your-url.com/redirect/">
于 2013-09-01T19:01:00.997 回答
-1

打印内容后写此语句,等待5秒后重定向

<meta http-equiv="refresh" content="5;url=http://your-url.com/redirect/" />
于 2013-09-01T19:21:21.630 回答