codeigniterファイルアップロードクラスのコード例
ファイルアップロードクラス
CodeIgniterのファイルアップロードクラスを使用すると、ファイルをアップロードできます。特定の種類とサイズのファイルをアップロードするように設定できます。
プロセス
ファイルをアップロードする一般的なプロセス:
ファイルをアップロードするためのフォームで、ユーザーがファイルを選択してアップロードすることができます。
このフォームが送信されると、指定されたディレクトリにファイルがアップロードされます。
同時に、書類が設定した要件を満たしているかどうかが検証されます。
ファイルが正常にアップロードされると、アップロードが成功したことを示す確認ウィンドウが返されます。
プロセスを示す短いチュートリアルは次のとおりです。以下に、関連する参考情報を記載します。
アップロードフォームを作成する
テキスト エディタを使用して、upload_form.php という名前のファイルを作成し、次のコードをコピーして、applications/views/ ディレクトリに保存します。
ここでは、フォーム ヘルパー関数がフォームの開始タグを作成するために使用されていることがわかります。これは、このフォーム ヘルパー関数が適切なステートメントを作成するため、ファイルのアップロードにはマルチパート フォームが必要です。また、$error 変数を使用していることもわかります。これは、ユーザーがフォームを送信してエラーが発生したときに、関連するエラー情報を表示します。ページのアップロードが成功しました
テキストエディタを使用して、upload_success.php という名前のファイルを作成します。次のコードをコピーして、applications/views/ ディレクトリに保存します。
ファイルは正常にアップロードされました!
$value):?>
:
コントローラー
テキスト エディターを使用して、upload.php という名前のコントローラーを作成し、次のコードをコピーして、applications/controllers/ ディレクトリに保存します。
load->helper(array('form', 'url')); } functionindex() { $this->load->view('upload_form', array('error' => ' ') )); } 関数 do_upload() { $config['upload_path'] = './uploads/' $config['allowed_types'] = 'gif|jpg|png'; '; $config['max_width'] = '1024' $config['max_height'] = '768'; $this->load->library('upload', $config); ->upload->do_upload()) { $error = array('error' => $this->upload->display_errors()); ', $error); } else { $data = array('upload_data' => $this->upload->view('upload_success', $データ); } } } ?>
アップロードファイルディレクトリ
アップロードした画像を保存するための保存先フォルダーも必要です。ルート ディレクトリに Uploads という名前のファイルを作成し、ファイルの属性を 777 に設定します。 (つまり、読み取りと書き込み)
フォームを送信
フォームを送信するには、次のような URL を入力してください:
example.com/index.php/upload/
アップロードフォームが表示されますので、送信する画像(jpg、gif、png)を選択してください。コントローラーに設定したパスが正しければ、機能が開始されます。
ファイルアップロードクラスを初期化する
他のいくつかの CodeIgniter クラスと同様に、ファイル アップロード クラスは $this->load->library 関数を使用してコントローラーで初期化されます。
$this->load->library('upload');
ファイル アップロード クラスがロードされると、オブジェクトは次のメソッドを通じて参照されます: $this->upload
好み
他のライブラリと同様に、コントローラーで次の設定を確立して、アップロードするファイルを制御します。
$config['upload_path'] = './uploads/';$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '100';
$config['max_width'] = '1024';
$config['max_height'] = '768';
$this->load->library('upload', $config);
// あるいは、初期化関数を呼び出して設定を行うこともできます。クラスを自動ロードする場合に便利です。
//[config フォルダー内の autoload.php ファイルにアップロード クラスを自動的にロードした場合、またはコンストラクターにロードした場合は、初期化関数 initialize を呼び出して設定をロードできます。 ————この括弧はIT Tumblerが翻訳し、私の理解を加えたものです】
$this->upload->initialize($config);
上記の設定は完全に実装されます。以下に、すべての設定パラメータの説明を示します。
環境設定
以下の設定パラメータが利用可能です。設定パラメータを指定しない場合、デフォルト値は次のようになります:
環境設定のデフォルト値オプションの説明
upload_path なし なし ファイルのアップロードパス。パスは書き込み可能である必要があり、相対パスと絶対パスの両方を使用できます。
allowed_types なし なし ファイルのアップロードを許可する MIME タイプ。通常、ファイル拡張子を縦棒「|」で区切って使用できます。
file_name なし 使用したいファイル名
このパラメータが設定されている場合、CodeIgniter はここで設定されたファイル名に従って、アップロードされたファイルの名前を変更します。ファイル名の拡張子も、許可されているファイル タイプである必要があります。
overwrite FALSE TRUE/FALSE (boolean) 上書きするかどうか。このパラメータが TRUE の場合、ファイルのアップロード時に同じ名前のファイルが見つかった場合、元のファイルは上書きされます。このパラメータが FALSE の場合、同じ名前のファイルがアップロードされると、CI はファイルの後に番号を追加します。新しいファイルのファイル名。
max_size 0 なし アップロードできる最大ファイルサイズ(K単位)。このパラメータが 0 の場合、制限はありません。注: 通常、PHP にもこの制限があり、php.ini ファイルで指定できます。通常、デフォルトは 2MB です。
max_width 0 なし アップロードされたファイルの最大幅(ピクセル単位)。 0 は制限がないことを意味します。
max_height 0 なし アップロードされたファイルの最大の高さ(ピクセル単位)。 0 は制限がないことを意味します。
max_filename 0 なし ファイル名の最大長。 0 は制限がないことを意味します。
encrypt_name FALSE TRUE/FALSE (ブール値) ファイルの名前を変更するかどうか。このパラメータが TRUE の場合、アップロードされたファイルの名前はランダムな暗号化文字列に変更されます。これは、ファイル アップローダがアップロードするファイルのファイル名を区別できないようにしたい場合に非常に便利です。このオプションは、上書きが FALSE の場合にのみ機能します。
Remove_spaces TRUE TRUE/FALSE (boolean) パラメータが TRUE の場合、ファイル名のスペースはアンダースコアに置き換えられます。推奨される使用方法。
設定ファイルで設定パラメータを設定します
上記の方法を使用して環境設定を設定したくない場合は、構成ファイルを使用して置き換えることができます。 Upload.php というファイルを作成し、そのファイルに $config 配列を追加して、そのファイルを config/upload.php に保存するだけで、自動的にロードされます。構成パラメータをこのファイルに保存する場合、$this->upload->initialize 関数を使用して手動でロードする必要はありません。
使用する機能
以下の機能を使用します
$this->upload->do_upload()
好みの設定パラメータに基づいて操作を実行します。注: デフォルトでは、アップロードされたファイルは送信フォームの userfile という名前のファイル フィールドから取得され、フォームのタイプは「マルチパート」である必要があります:
do_upload関数を実行する前に独自のファイルドメイン名をカスタマイズしたい場合は、次の方法で行うことができます:
$field_name = "some_field_name";
$this->upload->do_upload($field_name)
$this->upload->display_errors()
do_upload()が失敗を返した場合、エラーメッセージが表示されます。この関数は自動的に出力するのではなく、データを返すので、自由にアレンジすることができます。
フォーマットエラー
デフォルトでは上記の機能が使用されます
エラーメッセージにマークを付けます。このように独自の区切り文字を設定できます。
$this->upload->display_errors('
』、『
');
$this->upload->data()
これは、アップロードしたファイルに関するすべての関連情報の配列を返すヘルパー関数です。
配列
(
[file_name] => mypic.jpg
[file_type] => image/jpeg
[file_path] => /path/to/your/upload/
[フルパス] => /path/to/your/upload/jpg.jpg
[raw_name] => マイピク
[orig_name] => mypic.jpg
[client_name] => mypic.jpg
[ファイル拡張子] => .jpg
[file_size] => 22.2
[is_image] => 1
[image_width] => 800
[image_height] => 600
[image_type] => jpeg
[image_size_str] => 幅="800" 高さ="200"
)
説明
上記の配列項目の説明です。
商品説明
file_name アップロードしたファイル名(拡張子含む)
file_type ファイルのMIMEタイプ
file_path ファイル名を除いたファイルの絶対パス
full_path ファイル名を含むファイルの絶対パス
raw_name ファイル名の拡張子を除いた部分
orig_nameはアップロードしたファイルの初期ファイル名です。これは、アップロード ファイルの名前変更 (encrypt_name) が設定されている場合にのみ機能します。
Client_nameはクライアント上でアップロードされたファイルのファイル名です。
file_ext ファイル拡張子(「.」を含む)
file_size 画像サイズ、単位はkb
is_image 画像かどうか。 1 = はイメージです。 0 = 画像ではありません。
image_width 画像の幅。
image_height 画像の高さimage_type ファイルタイプ、つまりファイル拡張子(「.」を除く)
image_size_str 幅と高さを含む文字列。 imgタグ内で使用されます。