AndreyPik
18.08.2010 - 09:59
У меня скрипт в UTF-8, тестирую в Windows в TopServer'е. Когда загружаю файл, то его имя из $_FILE['file']['name'] записываю в базу тоже в UTF-8. Но когда перемещаю этот файл с move_uploaded_file($_FILE['tmp_name'],"путь".$_FILE["name"]) то имя файла записано кракозябрами, и при обращении к этому файлу через браузер файл не находится.
Если преобразовать имя в windows-1251 функцией move_uploaded_file($_FILE['tmp_name'],"путь".iconv("UTF-8","windows-1251",$_FILE["name"]) ) , то всё О.К.
Следовательно вопрос, как определить, нужно ли преобразовывать кодировку или нет, и в какую? На windows нужно преобразовать в windows-1251, а если сервер будет не на windows, там что? Может есть какая-то функция или переменная, в которой хранится эта информация?
Заранее, спасибо!!!
linker
18.08.2010 - 10:31
Кириллицу преобразовывать в транслит.
_____________
Gear FrameworkGear Framework на Github
AndreyPik
18.08.2010 - 12:41
Если бы я хотел преобразовывать имя, я бы сделал его типа 001, 002 и т.д. А я хочу сохранить имя вне зависимости от того, какой сервер и кодировка у него.
Не всегда желания совпадают с возможностями. Файл на сервере нельзя называть кирилицей, это не домашняя винда. Есть протоколы, а они не терпят таких вольностей.
Записывай оригинальное имя в отдельное место.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
кц23к23 3ц3кц3кц3кц3кц3кц3к
Valick
16.01.2013 - 04:40
AndreyPik, никогда не сохраняйте файл с тем именем с которым он пришел, будь то кириллица, латиница или арабская вязь, у вас всегда будет оставаться шанс получить два файла с одинаковыми именами.
Если нужно сохранить реальное имя файла, то сохраняйте его в базе данных, рядышком с путем к этому файлу (отдельные поля), а на диск уже сохраняйте со своим уникально сгенерированным именем.
_____________
Стимулятор ~yoomoney - 41001303250491
Цитата (twin @ 18.08.2010 - 15:51) |
Файл на сервере нельзя называть кирилицей, это не домашняя винда. |
Почему нельзя?) можно чего нет как будто linux русский не поддерживает)
гемор возникнет с этим это да скорее всего, а так хоть заназывайся)