次のフォームを含むビューファイルがあります。
form_upload('media_image_00');
form_upload('media_image_01');
.....
form_upload('media_image_14');
そして私のコントローラー(モデルに検証ルールを設定しました):
if ($this->form_validation->run() == TRUE) {
$config['upload_path'] = './my_image/';
$config['allowed_types'] = 'gif|jpg|jpeg|png';
$config['max_size'] = '10240';
$this->load->library('upload', $config);
for($i = 0;$i<=14;$i++){
$name = 'media_image_0'.$i;
if($i>9){
$name = 'media_image_'.$i;
} // end of if($i>9
if(!empty($_FILES[$name])){
$this->upload->do_upload($name);
$upload_data = $this->upload->data();
$_POST[$name] = $upload_data['file_name'];
dump($upload_data['file_name']);
}else{
// do nothing
}// end of if(!empty
} // end of for loop
dump($upload_data['file_name']) でファイル名をダンプしたいのですが、データが選択されてアップロードされた場所のみです。すべての分野ではありません。問題は、media_image_00 と media_image_01 にのみデータをアップロードすると、media_image_01 の名前がその後の他のすべてのフィールドに自動的にダンプされることです。ファイルは再度アップロードされませんが、名前は media_image_01 以降のすべてのフィールドで同じです。
何が問題なのかわからない。codeigniter の配列と関係があるのかもしれません。どうすればこれを解決できますか?