我正在製作一個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