PHP 下载脚本参数 - 文件名的路径


Php download script argument - path to filename

我有一个关于我的一个站点上使用的下载脚本的快速问题:

基本上,脚本嵌入到下载按钮中,用于下载特定文件。但是,脚本接受如下参数:download.php?="filename" .

但是,如果我更改浏览器中的参数以强制脚本从不同的目录(如" images/map.jpg")下载文件,它只是尝试下载一个名为"images-map.jpg"的文件。知道为什么吗?正确的论点应该是什么?

首先,我建议您不要使用直接链接到该文件 - 这是不安全的。最好以某种方式映射它并实现标头级重定向到文件。
第二 - 通过 GET 方法传递参数时使用 urlencode()。
最后一个 - 请制作print_r($_REQUEST['GET'])以查看发送到服务器的内容。这可能是 Web 服务器的配置问题,也可能是尝试实现您的请求,例如: http://site.example/download.php?=images/somefile.img - 通过这种方式,Web 服务器将尝试将 somefile.img 作为文件打开,而不是将此参数传递给 php 脚本。