Транслит загруженных файлов
|
|
Автор: CozaNostra
Опубликовано: 471 день назад (6 февраля 2011)
Блог: Блог CozaNostra
Редактировалось: 4 раза — последний 29 апреля 2011
|
+45↑ Голосов: 47 |
Столкивался с проблемой такого характера, при загрузке русско язычных файлов, пользователь потом не мог скачать его и получал подобное сообщение
не заставишь ведь всех пользователей грузить файлы на английском алфавите :)
поэтому пришлось придумать иной выход, идея такова, при загрузке файла менять русские буквы на анагол в английском и получилось!)
вот решение:
открываем /components/users/frontend.php
ищем в нем строку
выбрано на русском
загруженно так

с подачи Fuze изменил чуть чуть код :)
вставлять туда же)
Forbidden
You don't have permission to access /upload/userfiles/1/íîâîñòè.zip on this server.
типа файл не найден, но мы то знаем что он есть, оказывается просто он не "видит" русских букв.не заставишь ведь всех пользователей грузить файлы на английском алфавите :)
поэтому пришлось придумать иной выход, идея такова, при загрузке файла менять русские буквы на анагол в английском и получилось!)
вот решение:
открываем /components/users/frontend.php
ищем в нем строку
Код PHP:
и перед ней,но после { вставляем следущееif (move_uploaded_file($tmp_name, PATH."/upload/userfiles/$id/$name")){Код PHP:
вот и все результат такой$name=strtr($name,"абвгдеёзийклмнопрстуфхъыэ_","abvgdeeziyklmnoprstufh'iei"); $name=strtr($name,"АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ_","ABVGDEEZIYKLMNOPRSTUFH'IEI"); $name=strtr($name, array( "ж"=>"zh", "ц"=>"ts", "ч"=>"ch", "ш"=>"sh", "щ"=>"shch","ь"=>"", "ю"=>"yu", "я"=>"ya", "Ж"=>"ZH", "Ц"=>"TS", "Ч"=>"CH", "Ш"=>"SH", "Щ"=>"SHCH","Ь"=>"", "Ю"=>"YU", "Я"=>"YA", "ї"=>"i", "Ї"=>"Yi", "є"=>"ie", "Є"=>"Ye") );
выбрано на русском

загруженно так

с подачи Fuze изменил чуть чуть код :)
вставлять туда же)
Код PHP:
$info = pathinfo($name); $file_name = basename($name,'.'.$info['extension']); $file_name = cmsCore::strToURL($file_name); $ext = substr($name,1+strrpos($name,".")); $name=$file_name.".".$ext;
Благодарности
| # 6 февраля 2011 в 19:36 +2 | ||
|
| # 6 февраля 2011 в 19:45 +3 | ||
|
| # 6 февраля 2011 в 19:49 0 | ||
|
| # 6 февраля 2011 в 19:58 +2 | ||
|
| # 6 февраля 2011 в 19:59 0 | ||
|
| # 6 февраля 2011 в 22:12 +2 | ||
|
| # 6 февраля 2011 в 20:11 +1 | ||
|
| # 6 февраля 2011 в 20:13 +2 | ||
|
| # 6 февраля 2011 в 20:15 +3 | ||
|
| # 6 февраля 2011 в 20:48 +2 | ||
|
| # 6 февраля 2011 в 21:22 +6 | ||
|
| # 6 февраля 2011 в 23:28 +3 | ||
|
| # 7 февраля 2011 в 08:58 0 | ||
|
| # 7 февраля 2011 в 09:08 0 | ||
|
| # 7 февраля 2011 в 17:31 0 | ||
|
| # 7 февраля 2011 в 14:54 0 | ||
|
| # 7 февраля 2011 в 15:15 0 | ||
|
| # 7 февраля 2011 в 16:08 +1 |
| # 7 февраля 2011 в 20:37 0 | ||
|
| # 6 февраля 2011 в 21:33 +1 | ||
|
| # 6 февраля 2011 в 21:49 +1 | ||
|
| # 7 февраля 2011 в 10:38 0 | ||
|
| # 7 февраля 2011 в 12:02 0 | ||
|
| # 7 февраля 2011 в 14:55 -1 | ||
|
| # 7 февраля 2011 в 15:16 0 | ||
|
| # 7 февраля 2011 в 19:23 0 | ||
|
| # 7 февраля 2011 в 22:04 0 | ||
|
| # 7 февраля 2011 в 22:50 0 | ||
|
| # 7 февраля 2011 в 22:55 +1 |
| # 7 февраля 2011 в 22:58 0 | ||
|
| # 7 февраля 2011 в 23:20 0 | ||
|
| # 7 февраля 2011 в 23:38 0 | ||
|
| # 8 февраля 2011 в 00:16 0 | ||
|
| # 8 февраля 2011 в 00:29 0 | ||
|
| # 8 февраля 2011 в 00:29 0 | ||
|
| # 8 февраля 2011 в 13:02 0 | ||
|
| # 20 марта 2011 в 00:31 0 | ||
|
| # 2 мая 2011 в 19:03 0 | ||
|
