2015-03-12 3 views
1

Это должно быть так просто, но я немного тупик относительно наилучшего подхода к этому.Получить путь к изображению, созданному с помощью GD Lib PHP

Я создаю плагин PHP, поэтому я не могу жестко кодировать любые пути. Мне также нужно рассмотреть http-протоколы (http/https). Я использую GD Lib для создания и сохранения изображения. Моя структура каталогов выглядит следующим образом:

public_html > php_plugin > php_classes > php_class.php 
public_html > php_plugin > saved_images 

Плагин устанавливается в public_html. Я запускаю код для сохранения изображения в php_class.php. Здесь я сохраняю изображение так: '../saved_images/imagename.jpg'. Это прекрасно работает, и изображение сохраняется в правильном каталоге.

Затем я возвращаю этот путь через AJAX для отображения изображения. И, очевидно, этот путь не решает, и я получаю сломанную ссылку на изображение: http://www.website.com/saved_images/imagename.jpg

Он должен выглядеть следующим образом: http://www.website.com/php_plugin/saved_images/imagename.jpg

Так в моем PHP класс, где я создал безопасный путь как я строю вверх путь что я могу вернуться с AJAX, имея в виду, что это плагин и может использоваться на разных сайтах.

EDIT:

Для записи я знаю, что могу использовать $_SERVER['SERVER_NAME'] и $_SERVER['SERVER_PROTOCOL'], но на основе этих SO вопросов (PHP $_SERVER['HTTP_HOST'] vs. $_SERVER['SERVER_NAME'], am I understanding the man pages correctly? и PHP Get Site URL Protocol - http vs https) Я думаю, что этот подход будет весьма ненадежны как сервер конфиги где плагин будет быть размещенным будет неизвестно.

ответ

0

Вы объединяете два разных типа пути; путь к файловой системе сервера и путь URL. В вашем случае они похожи, но в зависимости от конфигурации сервера они могут быть совершенно разными.

Поскольку вы пишете, что вы возвращаете путь к изображению через AJAX, предположительно ваш код AJAX должен знать URL-адрес скрипта PHP, чтобы иметь возможность его называть (что-то вроде http://example.com/php_plugin/index.php?). В этом случае вы можете просто вернуть PHP только имя файла и предоставить остальную часть пути в вашем javascript.

Смежные вопросы