Хостинг. Что не так в коде для преобразования имени файла в md5 при загрузке?

toxi
6 лет
0

Здравствуйте.
Что не так в коде для преобразования имени файла в md5 при загрузке?

/* Смотрим на формат файла и оставляем его, не зависимо от имени файла */
function getExtension($filename)
{
   return end(explode(".", $filename));
}
/* Смотрим на формат файла и оставляем его, не зависимо от имени файла */
               
$md5_filename = md5($_FILES['file']['tmp_name']).".".getExtension($_FILES['file']['tmp_name']);
echo $md5_filename;

Результат:
a802d4cd3bf8b33ed5418ce00f255d3e.system/tmp/php7Czj3f

То есть имя файла переименовалось в MD5, а расширение файла - какой-то путь в системе на сервере. Расширение должно браться из самого имени файла. Например: ЖЖЖ.csv
где,
ЖЖЖ - имя файла
.csv - расширение.

Перед этим делал с картинками точно такой же скрипт - все нормально сохраняет и преобразует, а здесь не хочет.
Вот этот код работает с картинками без проблем:
/* Загрузка фото */
function getExtension($filename)
{
   return end(explode(".", $filename));
}

if (!empty($_FILES["foto"]["tmp_name"]))
{
   mkdir("data/people/".$get_data_id);
   copy($_FILES["foto"]["tmp_name"], "data/people/".$get_data_id."/".md5($_FILES["foto"]["name"]).".".getExtension($_FILES["foto"]["name"]));
}
/* Загрузка фото */

Результат:
8a407e364304a5c229fe100610e0c0e2.jpg
a96744486114598a3a0f020c4fe2f0c0.png

barin13
6 лет
0

getExtension($_FILES['file']['tmp_name'])

нужно заменить на:

getExtension($_FILES['file']['name'])

barin13
6 лет
1

tmp_name - это не имя переданного файла, а временное расположение загруженного файла на сервере.

barin13
6 лет
1

php.net/manual/ru/reserved.variables.files.php

Тема закрыта.