Русские имена файлов в setRequestHeader

Загрузка файлов через браузер поддерживается объектом XMLHttpRequest().

Для отправки имени файла используется фрагмент кода:

'Content-Disposition: form-data; name='+(fieldName || 'file')+'; filename=' + fileName + '\r\n';
Code language: JavaScript (javascript)

Если этим способом загружать на сервер файлы с символами кириллицы (как впрочем любых других кодировок не соответствующих рекомендациям) то имена файлов будут искажены, точнее те символы, которые не поддерживаются объектом.
Обойти это можно используя функцию encodeURIComponent():

'Content-Disposition: form-data; name='+(fieldName || 'file')+'; filename=' + encodeURIComponent(fileName) + '\r\n';
Code language: JavaScript (javascript)

Для обратного кодирования в бакенде необходимо использовать функцию urldecode():

$showFileName=urldecode($_FILES['fieldName']['name']);
Code language: PHP (php)

Войти

Зарегистрироваться

Сбросить пароль

Пожалуйста, введите ваше имя пользователя или эл. адрес, вы получите письмо со ссылкой для сброса пароля.