Php 在使用下划线发布的多个文件上载上重命名文件

Php 在使用下划线发布的多个文件上载上重命名文件,php,codeigniter,Php,Codeigniter,问题是,当我上传一个文件时,它会用下划线替换其空格。 因为我从ajax获取url,所以第一个字符串是: $last = $this->uri->total_segments(); echo $this->uri->segment($last); EOLU%2012345671545052 使用PHP: $id = rawurldecode($this->uri->segment($last)); echo $id; EOLU 12345671545

问题是,当我上传一个文件时,它会用下划线替换其空格。 因为我从ajax获取url,所以第一个字符串是:

$last = $this->uri->total_segments();
    echo $this->uri->segment($last);
EOLU%2012345671545052

使用PHP:

$id = rawurldecode($this->uri->segment($last));
echo $id;
EOLU 12345671545052

我正在上传多个文件。如果上传了3个文件,我想给出如下名称:

EOLU 12345671545052 0
EOLU 12345671545052 1
EOLU 12345671545052 2
但在查看我的上传目录后,我看到如下内容:

EOLU_12345671545052_0
EOLU_12345671545052_1
EOLU_12345671545052_2
这是我的完整代码:

$last = $this->uri->total_segments();
$id = rawurldecode($this->uri->segment($last));    
$pathToUpload = './assets/uploads/' . $id;

for ($i = 0; $i < $number_of_files; $i++) {
    $_FILES['file']['name'] = $files['file']['name'][$i];
    $_FILES['file']['type'] = $files['file']['type'][$i];
    $_FILES['file']['tmp_name'] = $files['file']['tmp_name'][$i];
    $_FILES['file']['error'] = $files['file']['error'][$i];
    $_FILES['file']['size'] = $files['file']['size'][$i];

 // we have to initialize before upload

     $config['file_name'] = $id . " ".$i; //Gives name of each file
     echo $config['file_name'];

     $this->upload->initialize($config);
     if (!$this->upload->do_upload("file")) {
                $errors++;
     }
  }
但它仍然给我强调。我在哪里错过了? 谢谢

试试这个:

$config['remove_spaces'] = false;

你检查过上传功能吗?是的,我检查过$这->上传->初始化($config);如果(!$this->upload->do_upload(“文件”){$errors++;echo$this->upload->display_errors();}
$config['remove_spaces'] = false;