获取使用GD Lib PHP创建的图像的路径

时间:2015-03-12 11:41:25

标签: php ajax image-processing gd filepath

这应该是如此简单,但我对于解决这个问题的最佳方法感到有点难过。

我正在构建一个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'],但基于这些SO问题(PHP $_SERVER['HTTP_HOST'] vs. $_SERVER['SERVER_NAME'], am I understanding the man pages correctly?PHP Get Site URL Protocol - http vs https)我认为这种方法将非常不可靠将托管插件的服务器配置将是未知的。

1 个答案:

答案 0 :(得分:0)

你正在混淆两种不同类型的路径;服务器文件系统路径和URL路径。在您的情况下,它们是相似的,但根据服务器配置,这些可能会大不相同。

既然你写了通过AJAX返回图像的路径,大概你的AJAX代码必须知道PHP脚本的URL才能调用它(类似http://example.com/php_plugin/index.php?)。在这种情况下,您可以让PHP仅返回文件名,并在您的javascript中提供其余路径。