1

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

4

3 回答 3

2

对 PHP 没有太多经验,但以此为起点,我得到:

$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函数(在此处记录)。

于 2013-01-17T15:43:52.217 回答
2

你可以这样做 :

    public function get_thumb($file) {

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

   }    
于 2013-01-18T01:25:55.287 回答
0

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

然后查询数据库并获取文件名,存储在:

$filename;

然后我只是回显出类似的东西

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

希望这可以帮助!

于 2013-01-17T15:47:40.370 回答