图像类功能由于路径而无法正常工作

时间:2016-03-04 22:46:49

标签: php unix nginx centos wamp

我正在使用以下功能:

  class Image {

    static function url($id, $type = 'maps') {
        $path = UPLOAD_DIRECTORY . '/' . $type . '/';
        $files = glob($path . $id . '.*');
        if (count($files)) {
            $ext = substr($files[0], strpos($files[0], '.') - strlen($files[5]));
            return SERVER_URL . 'img/' . $type . '/' . $id . $ext;
        } else {
            return '';
        }
    }

}

在WAMP上托管时工作正常,但在nginx上运行的Unix上使用时,由于文件路径的原因,它无法正确显示图像。它似乎在URL中添加了文件的物理路径,因此它认为文件的补丁是http://localhost/demo/img/maps/20/public_html/demo/img/maps/20.png

在WAMP上,它正确显示,即网址为http://localhost/demo/img/maps/20.png

这些是定义的变量:

define('SERVER_URL', 'http://localhost/demo/');
define('UPLOAD_DIRECTORY', dirname(__FILE__) . '/img');

ID = 20;

图像的物理位置位于/ public_html / demo / img / maps /

如何在unix OS上修复此问题。

1 个答案:

答案 0 :(得分:0)

管理解决方案(顺便说一句,我不是程序员)。

基本上在UNIX服务器上,图像所在的目录在路径中有一个点,而在wamp上它并没有。

所以我要做的就是使用strrpost而不是strpost - 这会找到字符串中最后一次出现的子串的位置而不是第一次出现。