- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Добрый день, господа. возник вопрос, который сам я решить красиво не могу, поэтому вынужден "за поможением обратиться"
в общем есть сайт в котором 100500 картинок разных размеров
все они должны лежать в папке files
то-есть структура примерно выглядит так
так вот основная картинка загружается в папку аплоад, а уменьшенные ее варианты тянутся из соответствующих папок. и если там файла нет, то как полагается дает 404ю.
а теперь задача.
Как сделать так, чтобы при обращении к папке, в которой нет нужного файла, запускался-бы index.php -- который должен генерить соответствующую миниатюру.
постоянная нагрузка php для выдачи тоже не вариант. Итак планируемая нагрузка будет достаточно большой
На мой взгляд, Вы не с той стороны копаете. Если запрос на показ картинки идёт непонятно от кого - так и нечего её генерить. А если запрос на показ формируется скриптом движка, то перед формированием запроса надо убедиться в существовании соответствующего файла - а в случае отсутствия такового подключить функцию, которая его создаст.
Да нет, это нормальное решение, особенно, если файлы неизвестно откуда и кто будет обращаться к фалам
в общем вот такое решение
кладется в папку images
Это все обычно делается централизованно. В корне сайта размещается основной файл сайта с т.н. фронт-контроллером и .htaccess примерно такого типа:
Фронт-контроллер выполняет обращение к роутеру, по итогам которого запускается обработчик с параметром вроде images/upload/i180x180/image.jpg (первый элемент пути обычно используется для выбора самого обработчика; в созданных мной сайтах обычно и images нет, т.к. этот каталог размещается в корне сайта наравне с каталогом files и сам по себе может быть завязан на одноименный обработчик; upload обычно тоже по-другому использую). Параметр может быть не один, а являться совокупностью уже выделенных из показанной строки элементов: в последнем элементе находится краткое имя файла, в предпоследнем – требуемый формат. Вы можете заранее при загрузке разместить в соответствующей таблице БД нужные строки, чтобы самостоятельно не заниматься проверкой их корректности в момент обращения к файлу – ядро сайта самостоятельно сделает сверку и в случае несовпадения не будет вызывать соответствующий обработчик, а сразу выдаст ошибку.
Если кратко, вы можете во время загрузки файла не создавать дополнительные файлы, а лишь добавить соответствующие им записи в БД.
egos, вы не поняли поставленной задачи.
ваше решение есть запуск копии скрипта при обращении к файлу. А теперь представьте. у вас на странице 100 миниатюр, на страницу обращаются, примерно 1-2 раза в секунду. соответственно мы будем иметь 200 запусков php скрипта в секунду.
даже если сделать для этого отдельный элемент контроллера придется загружать десяток файлов (в виде начального бутлоадера)
Такую нагрузку не каждый сервак выдержит. да и памяти сколько оно сожрет, просто на старт
апд, однако оно удобно, если надо попрятать приватные файлы от чужих глаз.
Это вы, видимо, не поняли, что я написал. Я всего лишь сказал, что то, что вы показали, обычно делается более централизованным путем.
---------- Добавлено 01.11.2016 в 20:29 ----------
Существуют не слишком масштабные каркасы. Отдельная точка входа используется лишь в крайних случаях. Ничего сверхтяжеловесного в вашей задаче я не увидел. После первого обращения к миниатюре она будет сгенерирована скриптом и в дальнейшем отдаваться непосредственно сервером. Кстати, при первом обращении она тоже может отдаваться сервером – для этого у всех популярных серверов есть поддержка специальных неофициальных заголовков (на уровне ядра или расширений).