あなたのコードはいくつかのことをしなければなりません:
(1) 各アップロード フォームにフラグを設定する必要があります (隠し変数は良い方法です)。これにより、ファイルを保存するフォルダーがわかります。このフラグを呼び出しましょう。upload_target
コントローラーで:
(2)upload_target
投稿変数から取得
(3) 値に応じてupload_target
、upload_config の値を必要に応じて設定し、アップロード クラスをロード/初期化します。
upload_config
値の置き場所 config/ upload.php
で 2 次元配列を定義しようとすると、ライブラリ ローダーが混乱する可能性があります。
代わりに、という構成ファイルupload_settings.php
を定義し、次の配列を定義します。
$config['target1']['upload_path'] = './uploads_path_1/';
$config['target1']['allowed_types'] = 'gif|jpg|png';
$config['target1']['max_size'] = '100';
$config['target1']['max_width'] = '1024';
$config['target1']['max_height'] = '768';
$config['target2']['upload_path'] = './uploads_path_2/';
$config['target2']['allowed_types'] = 'gif|jpg|png';
$config['target2']['max_size'] = '100';
$config['target2']['max_width'] = '1024';
$config['target2']['max_height'] = '768';
アップロード コントローラーでは、次のようなことを行います。
$this->config->load('upload_settings', TRUE);
upload_target
フォームの投稿変数から取得した値に応じて:
$upload_config_values = $this->load->config('target1','upload_settings');
また
$upload_config_values = $this->load->config('target2','upload_settings');
アップロード クラスをロードまたは初期化できるようになりました。
$this->load->library('upload', $upload_config_values);
実行可能なアプローチの概要を示すために、これをメタコードとして書きました。
隠し値フラグ/パラメータの設定
ファイルのアップロードに使用しているフォームごとに、次のように隠し値を追加します。
最初のフォームの場合:
2 番目の形式の場合:
投稿変数から値を取得し、そのupload_target
値に基づいて正しい構成ファイルを選択します。