【问题标题】:How to slides the uploaded images using CodeIgniter如何使用 CodeIgniter 滑动上传的图片
【发布时间】:2015-11-08 10:34:17
【问题描述】:

在我的应用程序中,我们可以创建商店。那时我们要上传很多图片。然后我们进入该特定商店的详细视图,显示我们以滑动方式上传的所有图像,彼此显示。

但我不知道如何在视图页面中创建 for 循环。

控制器

            for($i=0; $i<$cpt; $i++)
            {

                $_FILES['userfile']['name']= $files['userfile']['name'][$i];
                $_FILES['userfile']['type']= $files['userfile']['type'][$i];
                $_FILES['userfile']['tmp_name']= $files['userfile']['tmp_name'][$i];
                $_FILES['userfile']['error']= $files['userfile']['error'][$i];
                $_FILES['userfile']['size']= $files['userfile']['size'][$i];    

                $this->upload->initialize($this->set_upload_options($shop_id,$i));

                $this->upload->do_upload('userfile'); 
            }

            if (!$this->upload->do_upload('userfile'))
            {     
                echo $this->upload->display_errors();  
            }

            if($session_user_id != ''){
               $data['files'] = $files_uploaded;
               $this->load->view('header', $data);
               $this->load->view('shop_detail_view', $data);
               $this->load->view('footer',$data);
               // redirect(base_url().'user');
            }else{
                redirect(base_url().'login/index/shop/'.$shop_id);
            }


        private function set_upload_options($shop_id,$i)
        {   
           $config = array(); 
           $config['file_name']    = $shop_id.'_'.$i.'.jpg';   
           $config['upload_path'] = './application/assets/images/shops/';
           $config['allowed_types'] = 'jpg';   
           return $config;
        } 

假设上传 3 张图片,名称分别为 2_0.jpg,2_1.jpg,2_2.jpg 2 是 shop_id

我从文件夹中检索图像并以滑动方式显示

我对我的视图页面有疑问。现在我这样放

查看

 <div id="shopCarousel" class="carousel shopCarousel slide" data-ride="carousel">
        <!-- Indicators -->
        <ol class="carousel-indicators">
          <li data-target="#shopCarousel" data-slide-to="0" class="active"></li>
          <li data-target="#shopCarousel" data-slide-to="1"></li>
          <li data-target="#shopCarousel" data-slide-to="2"></li>
        </ol>

        <!-- Wrapper for slides -->
        <div class="carousel-inner" role="listbox">
          <div class="item active">
            <img src="<?echo base_url();?>application/assets/images/shops/1.jpg" alt="...">
            <div class="carousel-caption">
              ...
            </div>
          </div>
          <div class="item">
            <img src="<?echo base_url();?>application/assets/images/shops/2.jpg" alt="...">
            <div class="carousel-caption">
              ...
            </div>
          </div>

          <div class="item">
            <img src="<?echo base_url();?>application/assets/images/shops/3.jpg" alt="...">
            <div class="carousel-caption">
              ...
            </div>
          </div>

        </div>

现在我直接放置每个图像。我想显示特定商店的图像,现在在所有商店中显示相同的图像。

我想要这样,但图像不显示。

【问题讨论】:

  • 我认为在视图页面中使用 for 循环 for($i=0;$i应用程序/资产/图像/商店/$shop_id.'_'.$i.'.jpg'" alt="...">
  • 但我不知道这个地方在我的视图页面中是怎么回事

标签: php image codeigniter upload


【解决方案1】:

您需要使用 foreach 循环来上传图片,因为它正在替换控制器中 for 循环中的最后一张图片。

你应该像这样使用它

foreach($_FILES as $file)
{
    //your uploading code here using $file array
    //Store uploaded file names in a new array $files_uploaded
}

你也可以将文件列表的数组传递给视图

$data['files'] = $files_uploaded;
$this->load->view('pages/',$data);

在视图中

//Use the loop this way
<div class="carousel-inner" role="listbox">
<?php
foreach($files_uploaded AS $file){
?>
    <div class="item active">
        <img src="<?echo base_url();?>application/assets/images/shops/<?php echo  $file['name']; ?>" alt="...">
        <div class="carousel-caption">
          ...
        </div>
    </div>
<?php
}
?>
</div>

【讨论】:

  • 如果我上传 2 张图片,那么我如何设置限制
  • 使用count()函数,在PHP中可以使用 if(count($_FILES)>2){ /**** show error ****/ }else{/ /**** process upload ****/ } 你也可以使用javascript来限制上传超过2个文件....
  • for($i=0;$iapplication/assets/images/shops/$shop_id.' _'.$i.'.jpg'" alt="..."> } 这是我的需要..但它错了
  • img_count 从何而来?
  • 在上传时计算图像..现在我从数据库中获取该值
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-31
  • 2015-01-31
  • 1970-01-01
  • 2013-08-23
  • 2011-06-08
相关资源
最近更新 更多