Я думаю, что вы должны сделать что-то вроде этого:
$fieldname = $_POST['fieldname']; // don't use $_REQUEST
$extension = pathinfo($_FILES[$fieldname]['name'], PATHINFO_EXTENSION);
$uploaddir = 'uploads/';
$uploadfile = $uploaddir . 'newfile.'.$extension;
if (move_uploaded_file($_FILES[$fieldname]['tmp_name'], $uploadfile)) {
// success
}
move_uploaded_file
уже "переименовывает" файл, нет необходимости вызывать rename
вручную.Просто сделайте это за одну операцию.
Вы, вероятно, также заметили, что я передал PATHINFO_EXTENSION
pathinfo
, поскольку вам нужно только расширение, а не полная информация о пути.Наконец, я использовал $_POST
вместо $_REQUEST
.Вы не должны использовать $_REQUEST
, если вы действительно не знаете, что делаете.Это может привести к непредвиденным изменениям переменных в файлах cookie или сеансах, например.