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

あなたはこれを行うことができます :

    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 に答える
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 に答える
0

通常、これを行う方法は、ファイル名だけをデータベースに保存することです。(それらはすべて同じディレクトリにあると仮定します)。

次に、データベースにクエリを実行してファイル名を取得し、次の場所に保存します。

$filename;

次に、次のようなものをエコーアウトします

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

お役に立てれば!

于 2013-01-17T15:47:40.370 に答える