2012-10-23 28 views
4

如何在php中生成tmp文件名(上傳)?它的機制是什麼?我可以依靠他們總是獨一無二的嗎?如何在php中生成tmp文件名?

問題是我想將所有上傳的文件複製到一個const目錄中,並且我不確定tmp名稱是否會在我的服務器運行的歷史記錄中再次出現。

+0

不使用內部臨時名稱,使用[uniqid()](http://php.net/manual/en/function.uniqid.php) – 2012-10-23 19:45:11

+0

等創建自己的臨時名稱就是這樣...溫度。您不應該僅僅在處理上傳期間依賴它們在服務器的生命週期中是唯一的。 –

回答

1

最終,由PHP生成的臨時文件名使用函數mkstemp/mktemp,它保證文件名是唯一的。如果它生成的文件名已經存在,它會嘗試多次生成一個不存在的文件名。

在Windows上,PHP使用GetTempFileName,它對唯一性做出了相同的保證。

在這兩種情況下,如果函數不能返回一個唯一的文件名,它們會返回一個錯誤值,PHP根本不會返回文件名。