• UAH
  • USD
  • RUB
  • EUR
  • +38(044) 392-74-33  Киев
  • +38(057) 728-39-00  Харьков
  • +38(056) 794-38-31  Днепропетровск
  • +38(062) 210-24-93  Донецк
  • +38(032) 229-58-93  Львов
  • +38(048) 738-57-70  Одесса
  • +38(093) 449-04-21  Life
  • +38(067) 400-88-44  Киевстар
  • +38(095) 007-72-35  MTC
  • +1(888)393-24-51  USA, Toll free
  • +44(131)507-01-14  Great Britain
  • +7(499) 348-28-61  Москва

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

Форумы Хостинг Что не так в коде для преобразования имени файла в md5 при загрузке?
toxi
25.02.2016 13:57
хостинг: есть
домен: есть
Что не так в коде для преобразования имени файла в md5 при загрузке?
Здравствуйте.
Что не так в коде для преобразования имени файла в 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
25.02.2016 14:38
хостинг: есть
домен: есть
getExtension($_FILES['file']['tmp_name'])

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

getExtension($_FILES['file']['name'])
barin13
25.02.2016 14:39
хостинг: есть
домен: есть
1
tmp_name - это не имя переданного файла, а временное расположение загруженного файла на сервере.
barin13
25.02.2016 14:40
хостинг: есть
домен: есть
1
Участвовать в общении на этом форуме могут только
зарегистрированные пользователи.

Если вы уже зарегистрированы Вам необходимо войти на форум.

Тема закрыта по истечению срока давности.
Горячая линия
(044)
392 74 33
другие города