İlk olarak, uzantısı bulmak:
$pos = strrpos($filename, '.');
if($pos === false)
$ext = ""; // file has no extension; do something special?
$ext = substr($filename, $pos); // includes the period in the extension; do $pos + 1 if you don't want it
Daha sonra istediğiniz zaten dosya aramak ve isim uzatma eklenecek:
$newFilename = "foobar" . $ext;
move_uploaded_file($_FILES['picture']['tmp_name'], 'peopleimages/' . $newFilename);
O EDIT Düşünme, bu hiçbiri uygunudur. Dosya uzantıları most often dosya türünü tanımlamak, ancak bu her zaman böyle değildir. Örneğin, bir. Jpg uzantısı bir. Png dosyayı yeniden adlandırmak, ve çoğu uygulamalar hala bir png dosyası olarak algılamak istiyorum. Bunun dışında, bazı işletim sistemleri sadece bir dosya türünü belirlemek için dosya uzantılarını kullanmayın.
$_FILE yüklenenler, aynı zamanda aldığınız dosyanın MIME türünü temsil eden bir type elemanı verilmiştir. Eğer yapabiliyorsanız, ben bunu yerine verilen uzantısı güveniyor öneririz:
$imagetypes = array(
'image/png' => '.png',
'image/gif' => '.gif',
'image/jpeg' => '.jpg',
'image/bmp' => '.bmp');
$ext = $imagetypes[$_FILES['myfile']['type']];
Bir more complete list of MIME types here olabilir.