1

問題があります。2 時間かかりましたが、解決できませんでした。

複数の画像 (3 つの画像) をアップロードしたい場合はアップロードされますが、最初の画像だけですべての親指を作成することはできません。どこに問題があるのか​​ わかりません

これが私のフォームです

<form action="" method="post" enctype="multipart/form-data">
<input type="file" id="hotel_img1" value="upload" name="hotel_img1">
<input type="file" id="hotel_img2" value="upload" name="hotel_img1">
<input type="file" id="hotel_img3" value="upload" name="hotel_img1">
<input type="submit">
</form>

これは私のコードコントローラーです

<?php
if(!empty($_FILES))
    $upload_image = array('1','2','3','4','5');
    foreach($upload_image as $i) {
    if(!empty($_FILES["hotel_img$i"]['name']))
    {
        $hotel_ID= 12;
        $config['file_name'] = $this->session->userdata('user_id').'-'.$hotel_ID.'-'.time().$i;
        $config['upload_path'] =realpath(APPPATH . '../img');
        $config['allowed_types'] = 'gif|jpg|png|jpeg';
        $config['max_size'] = '512';
        $config['max_width'] = '1024';
        $config['max_height'] = '768';
        $config['overwrite'] = TRUE;
        $this->upload->initialize($config);
        $form_name = 'hotel_img' . $i;
        if(!$this->upload->do_upload($form_name))
            {       
                $data['msg'] .= "ERROR";
            }
            else
            {   
                $file_data = $this->upload->data();
                $image_data['img_url'] = $file_data['file_name'];
                $image_data['img_size'] = $file_data['file_size'] * 1024;
                $image_data['img_forID'] = $hotel_ID;
                $this->model_hotels->insert_image($image_data);
                $data['msg'] .= "Uploaded Picture No $i";
                $config_thumb['image_library'] = 'gd2';
                $config_thumb['source_image'] = $file_data['full_path'];
                $config_thumb['maintain_ratio'] = FALSE;
                $config_thumb['width'] = 250;
                $config_thumb['height'] = 150;
                $config_thumb['new_image'] = realpath(APPPATH . '../img').'/thumb/thumb_' .  $file_data['file_name'];
                $this->load->library('image_lib', $config_thumb);
                $this->image_lib->resize();
                $this->image_lib->clear(); 
            }
        }
    }
    $this->model_hotels->set_hotel_thumb($hotel_ID);
}   ?>
4

2 に答える 2

0

$ file_dataは常に同じであり、おそらく他の画像との配列も含まれているように思われます。これで、コードはすべての画像に対して$ file_dataのサイズを変更すると言っており、アップロードされた最初の画像のみを選択します。それが問題の原因だと思うので、print_r($ file_data)を試してください。

于 2012-10-14T13:56:33.487 に答える
0

これを設定に追加してみてください:

$config['create_thumb'] 
于 2012-10-14T16:56:10.150 に答える