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条)

报告相同问题?

悬赏问题

  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100