从原始图像路径获取缩略图图像

时间:2013-01-17 15:13:21

标签: php codeigniter thumbnails

上传图像时,我将原始图像路径(包含文件名)存储在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?

3 个答案:

答案 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经验,但这应该做到......

更简单的方法是:

  1. 查找/
  2. 中的最后一个$file
  3. 在其后插入thumbs/或将其替换为/thumbs/
  4. 查找已修改的$ file
  5. 中的最后一个.
  6. 在其后插入_thumb
  7. 您可以使用/函数(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);

希望这有帮助!