Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Нужно получить полное имя файла, зная только его часть.
Покинул форум
Сообщений всего: 305
Дата рег-ции: Янв. 2012
Помог: 1 раз(а)
Доброй ночи, всем!
На начальном этапе проектирования БД, была допущена, как сейчас оказалось, критическая ошибка. Вернее я посчитал, что записывать полное имя изображения не имеет смысла, т.к. мне известен id лота к которому это изображение принадлежит, а само изображение в своем имени содержит этот id.
Непонятно? Объясню по порядку. У меня есть таблица lots (id, name, title, ...). При создании новой записи, на сервер загружается фото этого лота, для фоток предусмотрено 2 папки full и thumb, полное и уменьшенное фото соответственно. Естественно файлы переименовываются, таким вот образом full/lot-[id лота].jpeg и thumb/thumb-[id].jpeg. Например, 'full/lot-22.jpeg', 'thumb/thumb-22.jpeg' или 'full/lot-25.gif', 'thumb/thumb-25.gif'. Думаю вы поняли в чем моя загвоздка? Я знаю имя файла, но я незнаю какое расширение мне подставить в конец. Как это можно сделать без хирургического вмешательства в БД и уже написанные для неё WEB-редакторы? Я знаю что это возможно, но не могу вдуплить как, а лезть и перекраивать всю таблицу, да еще и её ВЕБ-морды, как то совсем не весело (Добавление)
Все, я понял как это сделать! Опишу на словах ибо мой мозг еще пока не успевает так быстро составлять скрипты.
Нужно выполнить scandir() обоих директорий и искать имя файла перебирая полученные массивы. Если кто может это быстренько чиркануть, буду очень признателен! Горю по срокам, как обычно...
(Добавление)
Половина уже написана. Осталось вернуть true, если строка присутствует в строке. Как это сделать?
Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011 Откуда: Россия г. Нижний Новгород
Помог: 25 раз(а)
[+]
Жесть )))
nkl
Отправлено: 13 Февраля, 2012 - 02:34:15
Посетитель
Покинул форум
Сообщений всего: 305
Дата рег-ции: Янв. 2012
Помог: 1 раз(а)
sKaa, а по теме слабо?
Ezi
Отправлено: 13 Февраля, 2012 - 02:38:28
Частый гость
Покинул форум
Сообщений всего: 242
Дата рег-ции: Дек. 2010
Помог: 2 раз(а)
Мне кажется тебе лучше сейчас архитектуру БД исправить, самопал написать для этого и всё, а то если будешь каждый раз через скандир, думаю сервер упадет в спячку)) (Добавление)
Точнее тебе необходимо все файлы картинок с одному разрешению привести, либо в БД заносить относительные пути для картинки материала
----- Хочешь жить - умей вертеться
sKaa
Отправлено: 13 Февраля, 2012 - 02:47:21
Частый посетитель
Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011 Откуда: Россия г. Нижний Новгород
Покинул форум
Сообщений всего: 305
Дата рег-ции: Янв. 2012
Помог: 1 раз(а)
Это действие будет выполнятся из админки, поэтому о нагрузке можно не беспокоится. Да и не такая уж и емкая это функция scandir(). Ребят, не тупите, говорю же перекраивать таблицу и Web-морды не буду. Да и хранить, по сути целый избыточный столбец, тоже не есть гуд.
Хотя неее, погодите, этот скандир нужно будет делать каждый раз при необходимости вывести фото. Это я тут туплю, мля... Пошел перекраивать okay
Покинул форум
Сообщений всего: 242
Дата рег-ции: Дек. 2010
Помог: 2 раз(а)
nkl пишет:
Хотя неее, погодите, этот скандир нужно будет делать каждый раз при необходимости вывести фото. Это я тут туплю, мля...
Вот-вот, а я о чем спать ночью надо, и тупить не будешь!))
----- Хочешь жить - умей вертеться
sKaa
Отправлено: 13 Февраля, 2012 - 02:54:38
Частый посетитель
Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011 Откуда: Россия г. Нижний Новгород
Помог: 25 раз(а)
[+]
nkl моя функция не работает ?:
nkl
Отправлено: 13 Февраля, 2012 - 02:54:58
Посетитель
Покинул форум
Сообщений всего: 305
Дата рег-ции: Янв. 2012
Помог: 1 раз(а)
sKaa, твоя функция работать не будет. Просто потому, что файлов с расширением jpeg может и не быть.
Ezi
Отправлено: 13 Февраля, 2012 - 02:58:23
Частый гость
Покинул форум
Сообщений всего: 242
Дата рег-ции: Дек. 2010
Помог: 2 раз(а)
nkl, ну дак что тебе мешает сделать массив расширений имеющихся на сервере файлов, а затем foreach пробежать по каждому, если тру, то выводим картинку я так понял тебе вообще по*уй что сервер будет под нагрузкой, думаю падения в нокаут точно не избежать))
----- Хочешь жить - умей вертеться
sKaa
Отправлено: 13 Февраля, 2012 - 02:59:42
Частый посетитель
Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011 Откуда: Россия г. Нижний Новгород
Покинул форум
Сообщений всего: 242
Дата рег-ции: Дек. 2010
Помог: 2 раз(а)
sKaa пишет:
nkl печально у тебя там всё
это просто ужасно, желаю процветания проекту, чтобы аффтор темы узнал на сколько нужно ценить телодвижения сервера
----- Хочешь жить - умей вертеться
nkl
Отправлено: 13 Февраля, 2012 - 03:06:19
Посетитель
Покинул форум
Сообщений всего: 305
Дата рег-ции: Янв. 2012
Помог: 1 раз(а)
Ezi, я уже понял, какую нагрузку это создаст на сервер. Я пытался вывести картинку только в админке, потому как только она сейчас и есть. А потом я представил как картинки будут выводится в шаблон и чуть со стула не упал.
В общем, я понял, вместо того, что бы перекраивать базу, проще привести все картинки к общему расширению и все. Блага никаких конвертеров из формата в формат писать не нужно, или я не прав?
Поэкспериментировав сейчас на одном файле понял что расширения вообще можно любое поставить и apach все равно выведет картинку.
sKaa
Отправлено: 13 Февраля, 2012 - 03:08:31
Частый посетитель
Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011 Откуда: Россия г. Нижний Новгород
Помог: 25 раз(а)
[+]
nkl скажешь мне потом адрес твоего сайта? я тебе покажу : "как взломать всё за 60 секунд"
(можно в личку, чтоб я один такой был, а то потом поди разберись кто если не я)
Покинул форум
Сообщений всего: 242
Дата рег-ции: Дек. 2010
Помог: 2 раз(а)
nkl пишет:
понял что расширения вообще можно любое поставить и apach все равно выведет картинку.
ЛОЛ, апачу вообще пофиг что отдовать, тут вот зависит как такие файлы будет конечная ОС пользователя будет отоброжать. ОСь же анализирует содержимое фала, допустип если у нас есть файл с именем img.gif а мы его переименовали в img.jpg, то мы банально ему имя файла изменили, конечное расширение так же останется GIF, для наглядности сказаного можешь картинки в блокноте пооткрывать!
Кто умнее в ОСях и прочей ерунде, поправте меня если я не прав)) (Добавление)
sKaa пишет:
nkl скажешь мне потом адрес твоего сайта? я тебе покажу : "как взломать всё за 60 секунд"
лол
Каким методом собрался ломать, напиши в личку плиз, ради интереса_))
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.