Ne benim kullanıcı yüklenen görüntüler oldukça kısa, ama eşsiz isimleri yeniden adlandırmak için en iyi yolu olurdu?
uniqid() ?
Size dosya adları muhtemelen kısa olmayacağını kabul etmek zorunda kalacak, ancak en iyi uygulama RFC 4122 ve hızlı PHP uygulamalarından biri şudur:
// Execution (1000 IDs) took 7.509 milliseconds
// Example uuid: f40bc6a1-3bce-4472-add8-bbbe500b7f72
function mimec_uuid()
{
return sprintf( '%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ),
mt_rand( 0, 0x0fff ) | 0x4000,
mt_rand( 0, 0x3fff ) | 0x8000,
mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ) );
}
Şahsen olsa, ben Flickr gibi ölçekli gerek yoktu projeleri başarıyla aşağıdaki (daha hızlı ve daha kısa) algoritması kullanmışlardır:
// Execution (1000 IDs) took 5.097 milliseconds
// Example uuid: 2c2e4067d1c92109660b8deecae1be08
function xuuid()
{
return md5(microtime() . mt_rand( 0, 0xffff ));
}
Ben görüntüleri SEO amaçlar için, orijinal görüntü adı ile upload izin. Ben bozulmadan orijinal dosya tutmak, Google, ve diğerleri, Batman veya Eyfel Kulesi kullanıcıların görüntülerini bulacaksınız. Yani ben sadece ön mktime ekleyin ve sonra kaydedin.
$imagename = str_replace(' ','-',$imagename);
$imagename = str_replace('_','-',$imagename);
$target_path = $_SERVER['DOCUMENT_ROOT']."/uploads/".mktime()."-".$imagename;