我正在制作一个PHP脚本,它将下载一个给定名称和版本的文件。该文件将被存储在服务器上是这样的:使用PHP下载重命名的文件
/dl/Project1/1.0.txt
/dl/Project1/1.1.txt
/dl/Project2/2.3.jar
/dl/Project2/2.3.1.jar
而且路径检索这些文件应该是这样的:其实下载文件时
download.php?name=Project1&type=txt&version=1.0
download.php?name=Project1&type=txt&version=1.1
download.php?name=Project2&type=jar&version=2.3
download.php?name=Project2&type=jar&version=2.3.1
的问题就出现了。在本例中,我希望前两个文件都以Project1.txt的形式下载,并且我希望最后两个文件的下载为Project2.jar。我怎样才能暂时重命名这些工作?
你是对的,有一个错误,将允许用户下载任何文件...我现在要编辑它。 –
已编辑。我添加了一些'preg_replace'来替换在这个地方没有意义的字符,并在获取文件之前添加了'preg_match'检查。 –
是的,你现在就解决了。一般的解决方案是拒绝任何人试图使用'..'来访问任何东西,因为他们显然有不好的意图,因此不需要为他们提供任何帮助。 – kba