doufang1954 2014-11-13 07:13
浏览 47
已采纳

如何在索引之前添加下划线?

I want to insert underscore before the counting index every time I upload multiple files.

What I expect:

Schools.jpg

Schools_1.jpg

Schools_2.jpg

Schools_3.jpg

My program output:

Schools.jpg

Schools1.jpg

Schools2.jpg

Schools3.jpg

Here's my code:

Controller

public function do_upload() {
    $this->load->library('upload');
    $files = $_FILES;
    $cpt = count($_FILES['userfile']['name']);

    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());
        $this->db->insert('tbl_image', $file_array);
    }
}

private function set_upload_options() {
   $config = array(
        'image_library' => 'gd2',
        'file_name'     => $this->input->post('file_name'),
        'upload_path'   => './public/img/uploads',
        'upload_url'    => base_url().'public/img/uploads',
        'allowed_types' => 'jpg|jpeg|pdf',
        'max_size'      => '1024KB',
        'max_width'     => '1024',
        'max_height'    => '768',
        'maintain_ratio'=> TRUE,
        'overwrite'     => false,
    );
    return $config;
}

HTML

<label for="file">Select File To Upload:</label>
<input type="file"  name="userfile[]" multiple/>
<label for="file_name">Set image file name:</label>
<input type="text" size="20" name="file_name" required id="file_name"/>
<input type="submit" id="btnSubmit" value="Upload File"/>
  • 写回答

5条回答 默认 最新

  • dongwu9972 2014-11-13 09:36
    关注

    I saw a lot of wrong suggested answer, they put underscore in the index of array, like this

      $_FILES['userfile']['name']= $files['userfile']['name'][$i]."_".[$i];
      //you can't do this because $file['userfile']['name'][$i] is array so better do this code
    
    
    $flag=0;
                for($i=0; $i<$cpt; $i++) {
                    $flag++;
                    $_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($i, $flag));
                    $this->db->insert('tbl_image', $file_array);
              }
    
    
    private function set_upload_options($i, $f) {
        $charac= "";
        if($f>1) {            
            $charac=$this->input->post('file_name')."_".$i;  
            //here is the code to add underscore for image 2 and above
        }
        else {
            $charac=$this->input->post('file_name');
        }
       $config = array(
            'image_library' => 'gd2',
            'file_name'     => $charac,
            'upload_path'   => './public/img/uploads',
            'upload_url'    => base_url().'public/img/uploads',
            'allowed_types' => 'gif|jpg|jpeg',
            'max_size'      => '1024KB',
            'max_width'     => '1024',
            'max_height'    => '768',
            'maintain_ratio'=> TRUE,
            'overwrite'     => false,
        );
        return $config;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本