[[CodeIgniter]]
CodeIgniterの画像アップロード、リネーム、サムネイル作成についてメモ。
#contents
* 参考 [#u6839d6f]
-ファイルアップロードクラス : CodeIgniter ユーザガイド 日本語版 http://codeigniter.jp/user_guide_ja/libraries/file_uploading.html
-画像操作クラス : CodeIgniter ユーザガイド 日本語版 http://codeigniter.jp/user_guide_ja/libraries/image_lib.html
* 処理の流れ [#idb71cb6]
+ 画像のテンポラリーファイル(作業用の一時的なファイル)をアップロードするための「テンポラリー・ディレクトリー」を予め用意しておく。
=「file/tmp」等
+ 以前のテンポラリーファイルが残っていないように、念のため「file/tmp」内を空にする。
+ 画像のテンポラリーファイル(作業用の一時的なファイル)を「file/tmp」にアップロードする。
+ テンポラリーファイルを基にして、保存したい名前にファイル名をリネーム(名前の変更)をして、画像ファイルを保存する。
+ サムネイル画像を作成して保存する。
+ 画像ファイルの情報をデータベースに保存する。
+ 最後に、不要になったテンポラリーファイルを削除する。
** テンポラリーファイル [#xa6757b4]
- テンポラリーディレクトリーの用意
CodeIgniterのbase_urlから見て、
「./file/tmp/」
というディレクトリーを用意する。
=一時的な画像をアップロードして、それを基にリネームやリサイズしてコピーする。
- ディレクトリーを空にする
CodeIgniterのファイルヘルパーで、サクッと空にできる!
ファイルヘルパー : CodeIgniter ユーザガイド 日本語版
http://codeigniter.jp/user_guide_ja/helpers/file_helper.html
>ファイルヘルパー
ファイルヘルパーのファイルは、ファイルを処理するのに役立つ関数で構成されます。
ヘルパーのロード
このヘルパーは次のコードを使ってロードします:
$this->load->helper('file');
>delete_files('path')
パスに含まれるすべてのファイルを削除します。例:
delete_files('./path/to/directory/');
以下のようにして、テンポラリーディレクトリーを空にする。
delete_files('./file/tmp/');
※PHPの関数で空にする場合、「unlink」関数で、ファイルを一つずつ消していく。
PHP: unlink - Manual
http://jp2.php.net/manual/ja/function.unlink.php
* コードサンプル [#w01ad1b3]