2
A
回答
3
如果您不擔心文件名的可讀性/長度,那麼在添加相關擴展名之前使用uniqid生成文件名的「基礎」可能是最簡單的解決方案。
(如果你很可能會被產生地段亞微秒期間的文件名,使more_entropy
選項。)
0
作爲一個kludge你可以納入當前的時代。更好的解決方案是擁有一個Singleton類,它可以從增加的私有數據成員發佈標識號。
0
使用uniqid()
(如@Middaparka所示)將是一個相當安全的方法,並且如果您不關心文件名稱的樣子,那麼這將是最好的方法。同一用戶在同一微秒內用相同的文件管理兩個相同的請求是極不可能的。
如果你想保留原始文件名(它帶來 - 可解決但非常重要 - 非ASCII字符的問題),一個不斷增加的計數器將是最安全的事情。
1_IMG0085.JPG
2_Lilies_and_pond.JPG
3_Awesome_Party_Pic.JPG
有這樣無緣碰撞,但是這樣的計數器不完全是微不足道的實施,如果你想成爲競爭條件安全。
您是否在用戶上傳圖片時創建數據庫記錄?在這種情況下,您可以使用新創建的記錄中的ID作爲計數器變量。
+0
我AM將圖像插入數據庫中,但我寧願隱藏文件名,將其轉換爲隨機文件名稱中的任何不恰當的單詞。 – Darius 2011-04-02 11:00:56
0
只圖像重命名爲GUID +圖像擴展
相關問題
- 1. 插入具有唯一屬性的記錄的正確方法
- 2. Javascript確保所有輸入都具有唯一值
- 3. PowerShell:確保函數名稱唯一性的最佳方法?
- 4. 使文本框具有唯一名稱
- 5. 確保database.yml文件具有正確的憑據
- 6. 如何選擇具有唯一名稱的所有複選框?
- 7. 有效的方法來確保SQLite3中的唯一行
- 8. Xamarin:方法沒有正確的簽名
- 9. 方法OnTapped沒有正確的簽名
- 10. 具有唯一值的堆棧名稱
- 11. 如何確保MEF插件的唯一名稱
- 12. rails如何渲染具有正確文件名的文件
- 13. 確定字符串是否具有所有唯一字符
- 14. GStreamer的正確方法通過名稱
- 15. 保存帶有唯一名稱的生成的Word文件(mailmerge)
- 16. 正確定義具有匿名函數的名稱空間
- 17. 刪除具有唯一基本名稱的文件?
- 18. 我如何知道我的所有操作方法名稱都正確?
- 19. imaplib - Gmail中存檔/所有郵件的正確文件夾名稱是什麼?
- 20. 不能得到PHP以正確的名稱保存文件名
- 21. 爲什麼我的組件的render()方法是唯一默認具有正確值'this'的方法?
- 22. 如何保存具有唯一名稱的頁面?
- 23. 確保部署文件的正確版本的最佳方法?
- 24. 重命名所有具有相同基本名稱的文件
- 25. 批量重命名具有特定名稱的所有文件
- 26. 確保兩個Python類具有相同名稱的屬性
- 27. 資源文件夾的正確名稱
- 28. 文件沒有正確保存
- 29. 有多個進程讀取同一文件的正確方法?
- 30. Python:文件不存在。確保正確的文件名
+1:如果您不關心文件名,這是最簡單的方法。也許將當前用戶的ID和原始文件名添加爲'$ prefix'參數以防萬一。 – 2011-04-02 10:24:56
謝謝,我剛剛讀了它,似乎正是我需要的。 – Darius 2011-04-02 10:47:18