Tôi khuyên bạn chỉ nên sử dụng md5 hoặc bất cứ thứ gì tương đương về mặt khái niệm. Bằng cách đổi tên các tệp bằng cách tiêu hóa nội dung của nó, bạn không chỉ cấp tính duy nhất (luôn luôn lưu trữ hình ảnh trong thời gian lâu nhất có thể, và với việc đổi tên dựa trên nội dung, với một cái phù hợp, bạn có thể lưu trữ hình ảnh thực tế mãi mãi).
Ngoài ra, không phải là một vấn đề lớn, tuy nhiên nó không phải là một trường hợp giả định thuần túy khi những người dùng khác nhau tải lên chính xác cùng một hình ảnh. Chỉ cần ra khỏi hộp bạn sẽ có một tối ưu hóa lưu trữ dữ liệu nhỏ.
Đối với bất cứ điều gì khác được đề xuất: đối với tôi, tôi là một đối thủ mạnh của việc giữ bất kỳ loại thông tin phụ trợ nào trong một tên tệp. Khi tôi còn trẻ hơn nhiều (và mảnh mai hơn một chút :), tôi đã là một nhà phát triển Perl và có thói quen mơ hồ để lưu trữ nhiều thông tin phụ trợ trong tên tệp như thông thường cho phép tôi, vì các tính năng mô hình chuỗi Perl rất tuyệt vời. Và tôi đã đi đến kết luận rằng, nói về phát triển web, luôn luôn là lựa chọn tốt hơn để giữ dữ liệu được liên kết với tệp riêng biệt với tên tệp.
Hãy nhớ rằng ngày nay, khi các giao diện di động đang thống trị, tên tệp thực tế là một điều ít quan trọng hơn so với 5, 10 năm trước. Nhưng ngay cả khi điều này sẽ rất quan trọng trong bối cảnh ứng dụng của bạn, bạn luôn có thể liên quan đến một số phép thuật trường học cũ với việc liên quan đến Content-Disposition: attachment; filename="pretty_file_name.jpg"
tiêu đề HTTP, xây dựng bất kỳ tên tệp có liên quan nào bạn muốn. Ngoài ra, các trình duyệt hiện đại đang mở đường cho thuộc tính HTML5 mới, tải xuống . Tôi không tin rằng thực sự nhìn thấy tên hình ảnh "con người có thể đọc được" là điều bạn nên suy nghĩ trong phần lớn các trường hợp.
CẬP NHẬT: Một sửa đổi có thể được thực hiện để không có quá nhiều tệp trong một thư mục - chỉ cần lấy 3 chữ cái đầu tiên và tạo thư mục.