简短版本:
如何使用header()
搬迁到C:'Abyss Web Server'htdocs'database'pfs'max'files'public'sdf.png
?完整版:
目前我坚持这段代码:
header("Location: ".ROOT_URL."'database'pfs''".$_GET["u"]."''files'public''".$c);
(不完全在上下文中,但在这种情况下不需要它,因为我已经设法自己跟踪原因).
$c
是在上下文中声明的文件名,$_GET["u"]
是"所有者"的名称。ROOT_URL定义为:define("ROOT_URL", "file://'Abyss%20Web%20Server'htdocs");
,这只是服务器目录的路径(我也尝试过define("ROOT_URL", "C:/'Abyss%20Web%20Server'htdocs");
,但那里也没有运气)。无论如何,有了这个,我希望用户能够通过$_GET["u"]
下载上传的文件。但问题是,我每次都收到 404 错误......而且,通过一些实验,我得出的结论是 header() 函数不能很好地处理重定向。
不知道为什么会发生这种情况,但我认为这与file://
或c:/
有关。我的服务器目前托管在本地,因此我需要改用这些方法(很长时间)。答案将不胜感激,因为我已经被这个问题困了一段时间了......
如果是本地文件系统链接,则需要在前面加上file://
协议前缀:
header('Location: file://C:''path''to''file');
如果省略该部分,客户端(浏览器)会将其解释为http://C:''path''to''file