Не только и не столько про Vbulletin, сколько про использование головного мозга не только для эротических фантазий
Вот какая тенденция, однако. Если взять, к примеру, замечательный модуль Керка Imagehosting, к нему для сравнения добавить Photopost, туда же кинуть Photoplog и задаться вопросом - а что между ними общего, кроме как загружать картинки на сервер?
А вот что. Все, все до единой пересмотренные мной галереи для Vbulletin и не только (за исключением созданных для DLE, но это совсем другая песня) загружают файл с тем именем и с тем расширением, с которыми он был в девичестве, то есть на жестком диске или где-то на сайте при загрузке по URL
Это дает нам удивительные по красоте и оригинальности имена файлов в нашей файловой структуре:
______________._____.______-________._________2014_____.jpg - это не самый яркий пример, не сомневаюсь, что люди опытные видали и покруче.
Особенно доставляют имена файлов типа
567d576f57653576-543543d454g87678g8ds-575s565s765765s75g-9798d797987d-Pupsik.png
Вопрос - а на зачем, собственно, в файловой структуре такое щастье? Я уж не говорю про ситуации, когда имя файла в девичестве составляет так пару сотен символов (не так редко, кстати, встречается)
Собственно, не надо изобретать велосипед, надо немного попинать серое вещество. Расскажу на примере Photoplog
Там есть 3 варианта загрузки, поэтому и выбрал в качестве примера
Итак, загрузка по FTP, скрипт лезет в папку, поочередно читает файлы и сохраняет их с теми самыми бредовыми именами
Я часто использую пакетную FTP загрузку для создания галерей типа музейных и файлы у меня уже с говорящими именами, то есть, к примеру,
Абдурахманов М. Л. И. Брежнев у строителей Нурекской ГЭС .jpg , прости, Господи. Ясен пень, что в галерее я получу кучу файлов с именами ______________________________.jpg, которые потом придеться править вручную
А ежели на скорую руку
PHP Code:
//########################################################################
//########################################################################
//##### ИЗМЕНЕНИЯ ПРИ FTP ЗАГРУЗКЕ
//########################################################################
//########################################################################
//Создаем рандомное двузначное число для добавления к имени файла после time для исключения вероятности совпадения имен при быстрой загрузке
//Крайне маловероятно, но все-таки
$myr=rand(10,99);
$photoplog_file_error = 0;
//Присвоение кириллического титула, если возможно
$photoplog_file_cyr_title = utf2win1251($photoplog_ftpfile);
//Убираем из кириллического имени расширение файла, оно там не нужно
$delext='.'.pathinfo($photoplog_file_cyr_title, PATHINFO_EXTENSION);
$photoplog_file_cyr_title = str_replace($delext,'',$photoplog_file_cyr_title);
//Генерируем новое имя файла для размещения в файловой системе и в базе
//Получаем расширение
$newext = pathinfo($photoplog_ftpfile, PATHINFO_EXTENSION);
$photoplog_file_name = 'fotokontinent.ru_'.$photoplog_file_catid.'_'.time().$myr.'.'.$newext;
//########################################################################
//########################################################################
//##### ИЗМЕНЕНИЯ ПРИ FTP ЗАГРУЗКЕ
//########################################################################
//########################################################################
то становится ясным, что сначала мы прочитали имя файла, как оно есть (то есть по-рюсски) и запомнили его. Потом присвоили короткое, но, зараза, удобное имя типа ИМЯ_САЙТА_ДАТА.расширение, например, fotokontinent.ru_2_140638851557.jpg (вот та цифра 2 в серединке - номер категории, в которую загружен файл, это я так, себе, для удобства) И при добавлении в базу все остается как есть, вот только вместо невменяемого титула название картинки осталось именно что "
Абдурахманов М. Л. И. Брежнев у строителей Нурекской ГЭС" (заплакал)
При загрузке с компа и по URL все намного проще, так как не надо создавать титул, его все равно руками вводить, так что можно вполне ограничиться просто заменой имени файла
PHP Code:
//########################################################################################
//########################################################################################
//######ЗАГРУЗКА ПО URL
//########################################################################################
//########################################################################################
//Создаем рандомное двузначное число для добавления к имени файла после time для исключения вероятности совпадения имен при быстрой загрузке
//Крайне маловероятно, но все-таки
$myr=rand(10,99);
//Генерируем новое имя файла для размещения в файловой системе и в базе
//Получаем расширение
$newext = pathinfo($photoplog_file_name, PATHINFO_EXTENSION);
$photoplog_file_name = 'fotokontinent.ru_'.$photoplog_file_catid.'_'.time().$myr.'.'.$newext;
//########################################################################################
//########################################################################################
//######ЗАГРУЗКА ПО URL
//########################################################################################
//########################################################################################
Аналогичным образом у меня перепаханы и Photopost и Photoplog и много чего еще
Это все ради чего написано: перед тем, как что-то отправить на сервер, подумайте, что вы потом с этим делать будете. И как вы будете работать с файлами с именем из 200 подчеркиваний и тире. Или это я один такой которому это небезразлично?