GarfieldOfficial
@GarfieldOfficial
Помог? - Отметь решением.

Как изменять размер фото с помощью GET-запросов?

Добрый день.
Недавно лазил по гитхабу, понравилась один аватар, открыв его в отдельной вкладке я заметил странный URL адрес, который выглядил так: {ИМЯ}?v={ВЕРСИЯ}&s={размер}(максимум 370). Данная фича мне понравилась. То есть смотрите, вроде как на хостинге несколько изображений могут быть под одним названием, если судить по "v={ВЕРСИЯ}", и размер изменяется сам, когда пользователь изменяет последнее значение. Понравилась тем, что на данный момент я как новенький в веб-программировании, делаю на хостинге папки по типу 150(пикселей) и изменяю определенную фотографию под этот размер и кидаю туда, и так мне приходится копировать одно и тоже изображение во все папки с размерами, изменяя их размер лишь.

Лазил по разным форумам, но ответа так и не нашел. Буду искренне благодарен если кто-то кинет что-то похожее(либо это) и сможет немного разъяснить.

P.s.: Указал тэг php, ибо не точно знаю к чему это относится
  • Вопрос задан
  • 203 просмотра
Решения вопроса 1
search
@search
мама говорит что я особенный
Стратегия такая: на сервере хранится только оригинальное изображение. Когда юзер пытается получить сжатое, он идет на адрес, например /images/userpic-100x100.jpg Если по этому адресу еще нет такого изображения, то сервер перенаправит юзера на скрипт /generate.php?address=/images/userpic-100x100.jpg. Этот скрипт сожмёт оригинальное изображение, сохранит его по адресу /images/userpic-100x100.jpg и покажет пользователю. В следующий раз при запросе адреса /images/userpic-100x100.jpg будет показано уже сгенерированное изображение.

Для того чтоб сервер знал, куда перенаправлять юзера в случае, если сжатого изображения еще нет, нужно в файл .htaccess добавить этот код:

RewriteCond %{REQUEST_URI} ^/images/
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteRule (.*) /generate.php?address=$1 [L]


Ну и в файле generate.php уже разбирать переменную $_GET['address'], выяснять какую именно картинку хотел получить юзер, жать её, сохранять и перенаправлять обратно на $_GET['address'].
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@BorisKorobkov Куратор тега PHP
Web developer
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы