ajax — получает путь к изображению, созданному с помощью GD Lib Stack Overflow.

Это должно быть так просто, но я немного озадачен тем, как лучше всего подойти к этому.

Я строю плагин 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, имея в виду, что это плагин и может использоваться на многих разных сайтах.

РЕДАКТИРОВАТЬ:

Для записи я знаю, что могу использовать $_SERVER['SERVER_NAME'] а также $_SERVER['SERVER_PROTOCOL'] но на основе этих вопросов (PHP $ _SERVER [‘HTTP_HOST’] против $ _SERVER [‘SERVER_NAME’], правильно ли я понимаю справочные страницы? а также PHP Получить протокол URL сайта — http против https) Я думаю, что такой подход будет весьма ненадежным, так как настройки сервера, на которых будет размещаться плагин, будут неизвестны.

1

Решение

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

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

0

Другие решения

Других решений пока нет …