Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 09.12.2015
Сообщений: 14

PHP-крокозябры в имени файла

25.01.2016, 12:04. Показов 802. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Столкнулся с проблемкой, когда я передают файлы с именем файла в кириллице, то на сервере
при перемещении файла в постоянную директорию, имя файла в итоге получается в краказябрах, как избавиться от проблемы?
исходник на javascript(client):
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// Отправить файлов на сервер 
function sendFilesToServer() {
// AJAX-request
var xhr = new XMLHttpRequest();
// Ссылка на форму 
var formuppod = document.getElementById("form_uppod");
// Объект класса Форма с данными
var fp = new FormData(formuppod);
    
xhr.open("post","server.php",true);
    
// Обработка события загрузки ответа 
xhr.onload = function() {
// Успешное выполнение с кодом севрера 200
if (xhr.status == 200) {
var typeRez = xhr.responseText;
} else if(xhr.status == 500) { }
}
// Отправить сообщение
xhr.send(fp); 
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.01.2016, 12:04
Ответы с готовыми решениями:

Пробелы в имени файла php
Добрый день. Подскажите почему когда в имени файла встречается пробел, то функция не срабатывает? Вот: ...

Как сделать проверку на наличие похожего имени файла и запрос нового имени файла?
При загрузке изображения присваивается имя foto.jpg. Вопрос, как сделать проверку на то что фото с таким именем существует и если он...

PHP. Загрузка файлов на сервер. Максимальная длинна имени файла
Здравствуйте уважаемые коллеги. :hi Расскажу о своей ситуации для общего рассмотрения. Итак: FreeBSD 8.2, Веб-сервер апач 2_2, php 5.x....

6
 Аватар для useruser
166 / 90 / 38
Регистрация: 29.06.2015
Сообщений: 1,100
25.01.2016, 14:41
Цитата Сообщение от richfich Посмотреть сообщение
Столкнулся с проблемкой, когда я передают файлы с именем файла в кириллице, то на сервере
при перемещении файла
....
надо давать файлу другое имя. На английском. Писать транслитом и т.д.
И лучше приучить себя так делать сразу. Меньше будет проблемм в будущем.
К сожалению, все технологии у нас из США. И книги, и ПО, и процессоры.
И никак наш эльбрус при такой цене не приживётся. И мессенджер куку-ау не составит конкуренцию скайпу.

Ну а так - нужно проверить, установлен ли на сервере русский язык.
0
0 / 0 / 0
Регистрация: 09.12.2015
Сообщений: 14
25.01.2016, 21:37  [ТС]
Полностью согласен с именованием файлов в английском алфавите, но пользователи, которым за 50 лет, не всегда будут следовать правилам и им проще написать по-русски и отправить, а там уже будь, что будет. На сервере установлена кодировка по умолчанию win1251(за комментировал вообще). Установил в конфигурационном файле в .htaccess в корневой директории на utf-8. В итоге данные манипуляции не дали положительного результата. Решил все кириллические символы заменять на их транслит в английском языке, простой выход из ситуации, если все же кириллица встретится.
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
25.01.2016, 21:43
richfich, а причём здесь пользователь? Загружаемые файлы кидаются во временную папку и имеют адекватные англоязычные названия.
PHP
1
2
$_FILES['userfile']['tmp_name'] //полный путь к временному файлу на диске
$_FILES['userfile']['name'] // исходное имя файла на компьютере пользователя
Использовать оригинальное имя файла опасно, и кириллические символы - меньшая из бед. Если так сильно нужны названия файлов - пусть юзер пишет название на русском в отдельное поле и оно сохраняется в отдельную колонку в БД.
0
0 / 0 / 0
Регистрация: 09.12.2015
Сообщений: 14
25.01.2016, 22:30  [ТС]
Цитата Сообщение от Jodah Посмотреть сообщение
а причём здесь пользователь?
Пользователь капризен, допустим хочет что бы по-русски файлы отображались. То, что там php-интерпретатор именует во временной папке, пусть именует себе дальше...я хочу русские буквы, а если с русскими совсем беда как оказалось, то обычный англ-транслит сгодится \0. Я не использую субд, у меня обычная файловая структура с несколькими файлами скриптов для управления каталогом и файлами, и xml-для ведения статистики обращения к файлам(полноценную базу данных пихать во вся и все не считаю нужным).
Цитата Сообщение от Jodah Посмотреть сообщение
Использовать оригинальное имя файла опасно
В чем опасность? Оригинальные имена как бы не редкость..
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
25.01.2016, 22:50
Цитата Сообщение от richfich Посмотреть сообщение
хочет что бы по-русски файлы отображались.
Повторюсь, для пользователя можно создать отдельное поле для названия.

Цитата Сообщение от richfich Посмотреть сообщение
В чем опасность?
Самое простое - передать в качестве имени ../../index.php.
0
0 / 0 / 0
Регистрация: 09.12.2015
Сообщений: 14
25.01.2016, 23:50  [ТС]
Цитата Сообщение от Jodah Посмотреть сообщение
Самое простое - передать в качестве имени ../../index.php
Я не использую способ с указанием отдельного имени со стороны пользователя. А если бы и использовал, то фильтр для строки уж точно бы не забыл применить, почистить запрещенные символы. У меня пользователю доступна одна единственная форма с выбором нескольких текстовых файлов, выбрал->отправил. А вот, когда юзер запрашивает файл по типовому url из сервера: http://mysite.ru/server.php?url=namefile то у меня как раз строка из переданного параметра, чистится если чует не ладное.)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.01.2016, 23:50
Помогаю со студенческими работами здесь

Вывод имени с бд в php
Добрый день! помогите начинающему ламеру пытаюсь вывести с таблицы бд одно значение "имя", но что-то не получаеться ...

Крокозябры с почтой
Не могу понять , на майле нормально письмо доходит + кодировка срабатывает , а вот на яше проблемка , прежде чем прочитать нормально...

Чтение имени файлов PHP
Дрязья нужна помощь, я новоичок в php и на форуме:D, вообщем суть проблемы есть папка в ней файлы вот такого содержания: ...

Получение имени пользователя Windows средствами PHP
Как узнать имя пользователя Windows средствами PHP. Скрипт будет работать на LAMP сервере. Попробовал через Environment на WAMP...

От имени какого пользователя работает PHP в Linux?
Здравствуйте! Начал выкладывать свои PHP-скрипты в сеть и возник вопрос, о котором я раньше как-то не задумывался. Необходимо настроить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru