Я пытаюсь переименовать загруженный файл, добавив имя загрузчика ($ user)
но все, что он делает, это показывает имя пользователя в части расширения, file.jpguser, вот код,
if ((!empty($_FILES["uploaded_file"])) && ($_FILES['uploaded_file']['error'] == 0)) {
//Check if the file is JPEG image and it's size is less than 1.4MB
$filename = basename($_FILES['uploaded_file']['name']);
$ext = substr($filename, strrpos($filename, '.') + 1);
if (($ext == "jpg") && ($_FILES["uploaded_file"]["type"] == "image/jpeg") &&
($_FILES["uploaded_file"]["size"] < 10485760))
{
//Determine the path to which we want to save this file
$newname = dirname(__FILE__).'/affichagesimg/'.$filename'by'.$user;
//Check if the file with the same name is already exists on the serverif (!file_exists($newname)) {
//Attempt to move the uploaded file to it's new place
if ((move_uploaded_file($_FILES['uploaded_file']['tmp_name'],$newname))) {
echo "<script>
alert('votre affichage a était publié avec succés !');
window.location.href='.';
</script>";
Вам нужно разделить оригинальное имя файла (или использовать встроенный функционал), чтобы получить расширение. например:
<?php
...
$file_parts = explode('.', $uploaded_filename);
$extension = array_pop($file_parts);
$file_stub = implode('.', $file_parts);
$new_name = $file_stub . 'by' . $user . '.' . $extension;
Используя ваш код, новое имя файла:
<?php
...
$new_filename = $filename . 'by' . $user . '.' . $ext;
использование PathInfo функция
$user = 'username';
$filename = $_FILES['uploaded_file']['name'];
$path_parts = pathinfo($filename);
$newname = "{$path_parts['filename']}_by_{$user}.{$path_parts['extension']}";
Вы можете быть в состоянии использовать PathInfo а также для разбора имени файла:
$ file_parts = pathinfo ($ uploaded_filename);
$ new_name = $ file_parts [‘filename’]. ‘by’. $ user. ‘.’. $ file_parts [‘extension’];