передача файлов на сервер

Возникла такая проблема с передачей файлов на сервер. При передачи файла с названием на английском языке все работает отлично. Но если пытаюсь передать файлы с названием на русском языке, то при передачи файла его название меняется на какие-то символы. Как это исправить?

<label><strong>Загружаемые файлы</strong></label><br><br>
<label><input type="file" name="myfile[]" class="js-fileinput" /></label>

php

$upload_file= urldecode($_FILES["myfile"]["name"][$i]);
move_uploaded_file($_FILES["myfile"]["tmp_name"][$i],"$folder/$upload_file");

Ответы (1 шт):

Автор решения: Макс Максимус

Пропустите имя файла, которое вы получаете из $_FILES через функцию urldecode: $fileName = urldecode($fileName);

Если с настройками веб-сервера, с mb_internal_encoding("UTF-8") и прочим не получится, тогда сделайте так: $fileName = mb_convert_encoding($text, 'Windows-1251', 'UTF-8'); и получите вместо таблицы нормальное отображение имени - таблицы. $text - это строка, содержащая искаженное имя файла.

Значит проблема скорее всего с редактором кода, в котором вы создавали и сохраняли файл таблицы. Он сохраняет в другой кодировке.

→ Ссылка