मैं सिर्फ md5 या वैचारिक रूप से समकक्ष कुछ भी उपयोग करने की सलाह दूंगा। इसकी सामग्री को पचाकर फ़ाइलों का नाम बदलकर आप न केवल विशिष्टता प्रदान कर रहे हैं (हमेशा के लिए कैश छवियों को यथासंभव लंबे समय तक और सामग्री-आधारित नाम बदलने के साथ, ठीक है, आप उचित रूप से हमेशा के लिए छवियों को कैश कर सकते हैं)।
इसके अलावा, कोई बड़ी बात नहीं है, लेकिन फिर भी यह एक शुद्ध काल्पनिक मामला नहीं है जब विभिन्न उपयोगकर्ता बिल्कुल एक ही छवि अपलोड करते हैं। बॉक्स से बाहर बस आपके पास एक छोटा डेटा स्टोरेज ऑप्टिमाइज़ेशन होगा।
जैसा कि कुछ और प्रस्तावित है: मेरे लिए, मैं किसी भी प्रकार की सहायक जानकारी को फ़ाइल नाम में रखने का एक मजबूत विरोधी हूं । जब मैं बहुत छोटा था (और थोड़ा स्लिमर :), मैं एक पर्ल डेवलपर रहा हूं और फ़ाइल नाम में सहायक जानकारी के रूप में स्टोर करने के लिए एक संदिग्ध आदत थी क्योंकि मुझे सामान्य अनुमति दी गई थी, क्योंकि पर्ल स्ट्रिंग पैटर्न की विशेषताएं बहुत बढ़िया हैं। और मैं यह निष्कर्ष निकालने के लिए आया हूं कि वेब विकास की बात करते हुए, फ़ाइल से जुड़े डेटा को फ़ाइल नाम से अलग रखना हमेशा बेहतर विकल्प होता है।
ध्यान रखें कि आजकल, जब मोबाइल इंटरफेस हावी हो रहे हैं, वास्तविक फ़ाइल नाम एक कम महत्वपूर्ण बात है कि यह 5, 10 साल पहले था। लेकिन यहां तक कि अगर यह आपके आवेदन के संदर्भ में महत्वपूर्ण होगा, तो आप हमेशा Content-Disposition: attachment; filename="pretty_file_name.jpg"
HTTP हेडर को शामिल करने के साथ कुछ पुराने स्कूल मैजिक को शामिल कर सकते हैं, जिससे आप अपनी इच्छा के अनुसार किसी भी प्रासंगिक फ़ाइल नाम का निर्माण कर सकते हैं। इसके अलावा, आधुनिक ब्राउज़र नई HTML5 विशेषता, डाउनलोड करने का मार्ग प्रशस्त कर रहे हैं । मुझे विश्वास नहीं है कि वास्तव में "मानव पठनीय" छवि नाम देखना एक ऐसी चीज है जिसके बारे में आपको अधिकांश मामलों में सोचना चाहिए।
UPD: एक निर्देशिका में बहुत सारी फाइलें न होने के लिए एक संशोधन किया जा सकता है - बस पहले 3 अक्षर लें और dir बनाएं।