Переименование загруженного файла

Я пытаюсь переименовать загруженный файл, добавив имя загрузчика ($ 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>";

-1

Решение

Вам нужно разделить оригинальное имя файла (или использовать встроенный функционал), чтобы получить расширение. например:

<?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;
0

Другие решения

использование PathInfo функция

$user = 'username';
$filename = $_FILES['uploaded_file']['name'];
$path_parts = pathinfo($filename);
$newname = "{$path_parts['filename']}_by_{$user}.{$path_parts['extension']}";
0

Вы можете быть в состоянии использовать PathInfo а также для разбора имени файла:

$ file_parts = pathinfo ($ uploaded_filename);

$ new_name = $ file_parts [‘filename’]. ‘by’. $ user. ‘.’. $ file_parts [‘extension’];

0
По вопросам рекламы [email protected]