Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (2) [1] 2  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> кодировка файла при его перемещении функцией..., move_uploaded_file, не воспринимает русские символы!
Rodger1956630  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 15
Пользователь №: 39086
На форуме: 11 лет, 14 дней
Карма:




Всем привет! У меня такая проблема:
Функция move_uploaded_file, при перемещении файла с временного хранилища сервера на новое место, которое указывается вторым параметром - move_uploaded_file ( string $filename , string $destination ), сохраняет файлы изображений с такими именами: СЊРіР°Р˜РІР°РЅРѕРІРЅР°.JPG! Причём, изначально имя было таким: Ольга Ивановна.JPG
Видимо, это связанно с кодировкой. Но вот в чём проблема: внутри кода php, если попытаться вывести эту строку с помощью функции "echo", то строка правильно отображается. Более того, если проверить как закодированы эти символы с помощью функции mb_detect_encoding, то в ответ получаю кодировку UTF-8. Но на диске я вижу совершенно другие имена: СЊРіР°Р˜РІР°РЅРѕРІРЅР°.JPG
Буду благодарен за помощь! Заранее благодарю.)
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Winston  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 9509
Пользователь №: 18161
На форуме: 15 лет, 8 месяцев, 28 дней
Карма: 552




Перекодировать имя файла при перемещении, примерно так
$filename = iconv('cp1251', 'utf-8', $_FILES['filename']['name']);
PMСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Rodger1956630  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 15
Пользователь №: 39086
На форуме: 11 лет, 14 дней
Карма:




Спасибо! Я уже пробовал этой функцией вернуть файл в нормальное состояние, но пока нет результата. Если получиться, то я отпишусь.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Winston  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 9509
Пользователь №: 18161
На форуме: 15 лет, 8 месяцев, 28 дней
Карма: 552




А как именно ты ее пробовал?
PMСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Rodger1956630  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 15
Пользователь №: 39086
На форуме: 11 лет, 14 дней
Карма:




Да видимо не совсем правильно. Вот код функции "move_uploaded_file":
@move_uploaded_file($_FILES[$image_fieldname]['tmp_name'], $upload_filename)
or handle_error("возникла проблема сохранения вашего изобразения " .
"в его постоянном месте.",
"ошибка, связанная с правами доступа при перемещении " .
"файла в {$upload_filename}");
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Rodger1956630  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 15
Пользователь №: 39086
На форуме: 11 лет, 14 дней
Карма:




Я пробовал разными способами, но внедрить непосредственно в "move_uploaded_file", я не смог. Пытался по отдельности применить к переменным: $image_fieldname, $upload_filename. Резултата не было.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Rodger1956630  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 15
Пользователь №: 39086
На форуме: 11 лет, 14 дней
Карма:




Вот так ещё пробовал:
@move_uploaded_file(iconv('cp1251', 'utf-8', $_FILES[$image_fieldname]['tmp_name']), $upload_filename)
or handle_error("возникла проблема сохранения вашего изобразения " .
"в его постоянном месте.",
"ошибка, связанная с правами доступа при перемещении " .
"файла в {$upload_filename}");
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Winston  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 9509
Пользователь №: 18161
На форуме: 15 лет, 8 месяцев, 28 дней
Карма: 552




Перекодировать нужно
Цитата (Rodger1956630 @ 7.03.2014 - 19:18)
$upload_filename

а не временное имя файла.
PMСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Rodger1956630  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 15
Пользователь №: 39086
На форуме: 11 лет, 14 дней
Карма:




Вот в таком синтаксисе не получается, если вставить этот кусок кода, после функции "move_uploaded_file":
$upload_filename = iconv('cp1251', 'utf-8', $_FILES[$upload_filename]['name']);

Или тут ошибку я допустил?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Rodger1956630  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 15
Пользователь №: 39086
На форуме: 11 лет, 14 дней
Карма:




Кстати, если в переменной $upload_filename будут храниться только английские символы, то всё нормально отображается. Ну это я к слову...
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Winston  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 9509
Пользователь №: 18161
На форуме: 15 лет, 8 месяцев, 28 дней
Карма: 552




Цитата (Rodger1956630 @ 7.03.2014 - 19:41)
не получается, если вставить этот кусок кода, после функции "move_uploaded_file":

Нужно вставить не ПОСЛЕ, а ДО функции.
PMСайт пользователя
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Rodger1956630  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 15
Пользователь №: 39086
На форуме: 11 лет, 14 дней
Карма:




В таком варианте, вообще не работает, выдаёт ошибку и не создаёт никакого файла на диске:
$upload_filename = iconv('cp1251', 'utf-8', $_FILES[$upload_filename]['name']);
@move_uploaded_file($_FILES[$image_fieldname]['tmp_name'], $upload_filename)
or handle_error("возникла проблема сохранения вашего изобразения " .
"в его постоянном месте.",
"ошибка, связанная с правами доступа при перемещении " .
"файла в {$upload_filename}");
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Rodger1956630  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 15
Пользователь №: 39086
На форуме: 11 лет, 14 дней
Карма:




Возможно, с именами проблема. Я сам не пойму в чём дело.

Это сообщение отредактировал Rodger1956630 - 7.03.2014 - 21:49
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Rodger1956630  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 15
Пользователь №: 39086
На форуме: 11 лет, 14 дней
Карма:




Возможно, второй параметр не верно задан. То что я зелёным выделил:
$upload_filename = iconv('cp1251', 'utf-8', $_FILES[$upload_filename]['name']);
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Rodger1956630  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 15
Пользователь №: 39086
На форуме: 11 лет, 14 дней
Карма:




Есть! Решил!)
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (2) [1] 2  Ответ в темуСоздание новой темыСоздание опроса