Я не согласен с ответом @ Alexander.Plutov. Вам не нужно сохранять файл, затем копировать его, а затем отсоединять его .
Поскольку вы указываете имя файла назначения в своем коде:
move_uploaded_file($filename, "../img/user_uploaded/" . $newfilename);
echo "Stored in: " . "../img/user_uploaded/" .$newfilename;
все, что вам нужно, это указать другое имя вместо $newfilename
. Если ваша цель - заменить расширение .tmp чем-то другим, вы можете удалить последние четыре символа (которые всегда .tmp устанавливаются PHP), а затем добавить собственное расширение.
Если вы просто хотите сохранить расширение, данное пользователем, используйте:
$friendlyName = $_FILES["file"]["name"];
$extension = substr($friendlyName, strrpos($friendlyName, '.') + 1);
Конечно, вы должны осознавать риск использования чего-либо, отправленного пользователем. Что, если расширение вообще отсутствует, или оно слишком длинное, или если оно не соответствует реальному типу файла (deadly-virus.exe переименован в pretty-image.jpg)?