我正在用php构建一个文件管理器。每个请求都由php脚本处理,也就是说,直接下载路径也会被预先检查,这样我就可以禁止某些下载,还可以显示其他内容。
我现在的问题是,这里的任何stackoverflow都发挥了作用,我不知道任何解决方案,我如何准备下载,也就是说,首先显示内容,然后刷新页面一次,这样我就可以发送文件。。。但没有副作用。
刷新当然不是问题,但到目前为止还没有刷新的解决方案。通过header()刷新可以使我的页面不显示任何内容,使用或javascript刷新与内容显示有关的工作,然而,使用例如wget的下载不再有效。
换句话说,问题是:
由于之前的内容加载,将发送一个有效的状态代码,因此像wget或curl这样的程序不会跟随刷新,因此它不会下载文件,只下载html。要获得带有curl或wget的实际文件,您需要发送http头,但是,3XX重定向状态代码需要一个Location值。如果发送了标题("位置:.."),则在刷新之前不会显示网站。
需要一种解决方案,即可以发送适当的状态代码,并且内容仍将在文件分发之前加载。
已经找到了一个部分解决方案,状态代码206不需要位置值,并且仍然适用于wget。卷曲实际上并没有。所以也许还有更好的解决方案?
谢谢你的帮助!
<meta>
标签怎么样?
<meta http-equiv="refresh" content="5" URL="http://your-url.com/redirect/">
在打印内容后编写此语句,它将等待5秒后重定向
<meta http-equiv="refresh" content="5;url=http://your-url.com/redirect/" />