【问题标题】:Get thumbnail image from the original image path从原始图像路径获取缩略图
【发布时间】:2013-01-01 04:07:46
【问题描述】:

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

【问题讨论】:

  • 你能指定你正在使用的语言吗(也许将它添加为标签)?我无法确定这是否是 JavaScript、Perl、PHP ......并且dirname 函数存在于所有列出的三个中。你需要一个字符串操作,不同的语言有不同的可能性。
  • 这是codeigniter (php)。我添加了 php 标签。
  • 有了大拇指你想做什么?
  • @chris 为观众显示缩略图而不是使用大图
  • 所以您将文件名存储在 db yeh 的字段中?

标签: php codeigniter thumbnails


【解决方案1】:

对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. $file 中找到最后一个/
  2. 在其后插入thumbs/ 或将其替换为/thumbs/
  3. 在已编辑的 $file 中找到最后一个 .
  4. 在其后插入_thumb

您可以使用strrchr 函数(documented here)找到/. 的位置。

【讨论】:

  • 我刚刚发现有一个 basename() 可以从路径中获取文件名,但我需要在文件名后添加 _thumb.jpg。示例 foo_thumb.jpg
  • @vzhen 用rtrim 去掉扩展名 -> rtrim($get_path,'.jpg')(假设所有图像都是JPG)并添加_thumb.jpg
【解决方案2】:

你可以这样做:

    public function get_thumb($file) {

      $infos = pathinfo($file);
      $path = $infos['dirname'] . '/thumbs/' . $infos['filename'] . '_thumb.' . $infos['extension'];
      return $path;

   }    

【讨论】:

    【解决方案3】:

    通常,我这样做的方式是仅将文件名存储在 db.xml 中。 (假设它们都在同一个目录中)。

    然后查询数据库,得到文件名,存入:

    $filename;
    

    然后我只是回应类似的东西

     echo base_url('images/thumbs/' . $filename);
    

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 2012-03-05
      • 1970-01-01
      • 2017-03-10
      • 1970-01-01
      • 1970-01-01
      • 2013-08-13
      • 2016-04-09
      • 2013-08-12
      • 2016-06-02
      相关资源
      最近更新 更多