我正在使用以下功能:
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上修复此问题。
答案 0 :(得分:0)
管理解决方案(顺便说一句,我不是程序员)。
基本上在UNIX服务器上,图像所在的目录在路径中有一个点,而在wamp上它并没有。
所以我要做的就是使用strrpost而不是strpost - 这会找到字符串中最后一次出现的子串的位置而不是第一次出现。