上传图像时,我将原始图像路径(包含文件名)存储在db中。
For example:
img/uploaded/photo.jpg
然后我生成它的缩略图并存储在db。下面的目录中。
/img/uploaded/thumbs/photo_thumb.jpg
我有以下功能但不知道如何获取属于db的URL的拇指。
//ie: $file is img/uploaded/photo.jpg
public function get_thumb($file)
{
//get the path without filename
$get_path = dirname($file) . "/thumbs/";
//result img/uploaded/thumbs/ (how can i get the photo_thumb.jpg) here?
return $get_path;
}
编辑 basename($ file)从路径获取文件名但是如何添加_thumb.jpg?
答案 0 :(得分:2)
对PHP没有太多经验,但使用this作为起点,我得到:
$pattern = '/^.*\/(.*)$/'; // match everything after the last slash and store it in $1
$replacement = '$1';
$filename = preg_replace($pattern, $replacement, $file);
$get_path = $file . '/thumbs/' . $filename;
正如我所说,没有太多的PHP经验,但这应该做到......
更简单的方法是:
/
$file
thumbs/
或将其替换为/thumbs/
.
_thumb
您可以使用/
函数(documented here)找到.
和strrchr
的帖子。
答案 1 :(得分:2)
你可以这样做:
public function get_thumb($file) {
$infos = pathinfo($file);
$path = $infos['dirname'] . '/thumbs/' . $infos['filename'] . '_thumb.' . $infos['extension'];
return $path;
}
答案 2 :(得分:0)
通常,我这样做的方法是只在db中存储文件名。 (假设它们都在同一目录中)。
然后查询数据库并获取文件名,将其存储在:
$filename;
然后我只是回应出像
这样的东西 echo base_url('images/thumbs/' . $filename);
希望这有帮助!